.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFF4C84D050]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,223DB800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,2646D727688
call      qword ptr [7FFF4C804E10]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],ebp
M00_L02
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8696D0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbp,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbp+8]
call      CORINFO_HELP_ASSIGN_REF
xor       r8d,r8d
mov       [rbp+8],r8
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C84D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF4C5D7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF4D0DC978]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBDF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBDF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,90FC5405A011
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF4C804828]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,90FC5405A011
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C804390]
mov       rcx,90FC5405A011
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF4C8EE8C8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF4C8EE370]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF4D0D65E0]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,223DB800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF4D06C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF4D066508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF4D0AD710]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF4D06C828]
lea       rcx,[rbp+40]
call      qword ptr [7FFF4C73C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,223DB801DE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF4C9A7320]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,90FC5405A011
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C8044B0]
mov       rcx,90FC5405A011
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBDF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2646D710008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FFF4C735B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF4C84DA58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF4CBDF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFF4C9857E8]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFF4C985800]
int       3
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFF4C81D050]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,1FB10C00428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,23BA2D47688
call      qword ptr [7FFF4C7D4E10]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],ebp
M00_L02
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8396D0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbp,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbp+8]
call      CORINFO_HELP_ASSIGN_REF
xor       r8d,r8d
mov       [rbp+8],r8
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C81D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF4C5A7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF4D0AC978]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0FF27D7F4C874
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF4C7D4828]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0FF27D7F4C874
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C7D4390]
mov       rcx,0FF27D7F4C874
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF4C8BE8C8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF4C8BE370]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF4D0A65E0]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1FB10C00298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF4D03C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF4D036508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF4D07D710]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF4D03C828]
lea       rcx,[rbp+40]
call      qword ptr [7FFF4C70C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1FB10C01DE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF4C977320]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0FF27D7F4C874
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C7D44B0]
mov       rcx,0FF27D7F4C874
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,23BA2D30008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FFF4C705B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF4C81DA58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF4CBAF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFF4C9557E8]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFF4C955800]
int       3
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFF4C82D050]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,1F986400428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,23A184B7688
call      qword ptr [7FFF4C7E4E10]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L01
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L02
M00_L01
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L02
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C82D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8496D0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF4C5B7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF4D0BC978]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,8AB67B7D7441
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF4C7E4828]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,8AB67B7D7441
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C7E4390]
mov       rcx,8AB67B7D7441
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF4C8CE8C8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF4C8CE370]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF4D0B65E0]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1F986400298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF4D04C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF4D046508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF4D08D710]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF4D04C828]
lea       rcx,[rbp+40]
call      qword ptr [7FFF4C71C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1F986401DE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF4C987320]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,8AB67B7D7441
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C7E44B0]
mov       rcx,8AB67B7D7441
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFF4C715B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,esi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF4C82DA58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF4CBBF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFF4C9657E8]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFF4C965800]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,23A184A0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFF4C8FC150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,2A7B6800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,2E848717688
call      qword ptr [7FFF4C834810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L01
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L02
M00_L01
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L02
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8EEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF4C5B7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF4D0AC948]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,172B3A7C24E2
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF4C834228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,172B3A7C24E2
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C80FD20]
mov       rcx,172B3A7C24E2
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF4C7DF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF4C7DF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF4D0A64F0]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,2A7B6800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF4D03C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF4D036508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF4D07D710]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF4D03C828]
lea       rcx,[rbp+40]
call      qword ptr [7FFF4C71C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,2A7B6805CE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF4C9775C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,172B3A7C24E2
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C80FE40]
mov       rcx,172B3A7C24E2
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFF4C715B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,esi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF4C8FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF4CBAF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFF4C85E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFF4C85E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,2E848700008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFF4C8EC150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,1E5A5800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,226376376A8
call      qword ptr [7FFF4C824810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L01
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L02
M00_L01
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L02
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8DEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF4C5A7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF4D09DD28]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,35FF978F63DD
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF4C824228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,35FF978F63DD
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C7FFD20]
mov       rcx,35FF978F63DD
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF4C7CF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF4C7CF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF4D0975A0]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1E5A5800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF4D02DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF4D0278B8]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF4D06E940]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF4D02DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FFF4C70C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1E5A5805CE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF4C9675C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,35FF978F63DD
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C7FFE40]
mov       rcx,35FF978F63DD
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFF4C705B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,esi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF4C8ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF4CB9F6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFF4C84E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFF4C84E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,22637620008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFF4C90C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,1D4E3800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,215718F76A8
call      qword ptr [7FFF4C844810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L01
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L02
M00_L01
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L02
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF4C5C7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF4D0BDD28]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,7FEF5313B69F
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF4C844228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,7FEF5313B69F
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C81FD20]
mov       rcx,7FEF5313B69F
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF4C7EF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF4C7EF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF4D0B75A0]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1D4E3800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF4D04DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF4D0478B8]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF4D08E940]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF4D04DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FFF4C72C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1D4E3805CE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF4C9875C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,7FEF5313B69F
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C81FE40]
mov       rcx,7FEF5313B69F
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFF4C725B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,esi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF4C90CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF4CBBF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFF4C86E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFF4C86E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,215718E0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFF4C8FC150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,22448800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,264DA5D76A8
call      qword ptr [7FFF4C834810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],ebp
M00_L02
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8EEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbp,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbp+8]
call      CORINFO_HELP_ASSIGN_REF
xor       r8d,r8d
mov       [rbp+8],r8
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF4C5B7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF4D0AD830]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,9478D7596EB5
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF4C834228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,9478D7596EB5
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C80FD20]
mov       rcx,9478D7596EB5
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF4C7DF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF4C7DF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF4D0A75A0]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,22448800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF4D03DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF4D0378B8]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF4D07E940]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF4D03DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FFF4C71C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,22448805CE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF4C9775C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,9478D7596EB5
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C80FE40]
mov       rcx,9478D7596EB5
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,264DA5C0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FFF4C715B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF4C8FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF4CBAF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFF4C85E9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFF4C85E9E8]
int       3
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ArrayBytesToStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
mov       edx,[rdx+8]
add       edx,edx
mov       rcx,rsi
call      qword ptr [7FFF4C8EC150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       edi,edi
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
mov       rcx,[rbx+280]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
lea       rcx,[rcx+r8+10]
mov       r8,2B054800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,2F0E26C76A8
call      qword ptr [7FFF4C824810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],ebp
M00_L02
 
inc       edi
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,edi
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8DEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbp,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbp+8]
call      CORINFO_HELP_ASSIGN_REF
xor       r8d,r8d
mov       [rbp+8],r8
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF4C5A7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF4D09D830]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0ACB61149F8A3
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF4C824228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0ACB61149F8A3
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C7FFD20]
mov       rcx,0ACB61149F8A3
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF4C7CF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF4C7CF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF4D0975A0]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,2B054800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF4D02DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF4D0278B8]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF4D06E940]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF4D02DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FFF4C70C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,2B050803CF0
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF4C9675C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0ACB61149F8A3
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C7FFE40]
mov       rcx,0ACB61149F8A3
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2F0E26B0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FFF4C705B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF4C8ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF4CB9F6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFF4C84E9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFF4C84E9E8]
int       3
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L06
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFF4C82D050]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L05
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,22720800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,267AE6F7688
call      qword ptr [7FFF4C7E4E10]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L01
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L02
M00_L01
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L02
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C82D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8496D0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L06
 
call      qword ptr [7FFF4CB84CF0]
mov       ecx,0F
mov       rdx,7FFF4CAED7C0
call      CORINFO_HELP_STRCNS
mov       rbx,rax
mov       ecx,1AC2
mov       rdx,7FFF4C98B8E8
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFF4C666B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFF4CAED7C0
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFF4C666B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
call      qword ptr [7FFF4CB84AE0]
mov       r8,rax
mov       rdx,rbx
mov       rcx,rsi
call      qword ptr [7FFF4C7E6718]
mov       rcx,rsi
call      CORINFO_HELP_THROW
int       3
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF4C5B7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF4D0BCED0]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,10DCD1468EE3
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF4C7E4828]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,10DCD1468EE3
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C7E4390]
mov       rcx,10DCD1468EE3
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF4C8CE8C8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF4C8CE370]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF4D0B6B38]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,22720800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF4D04C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF4D046508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF4D08D710]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF4D04C828]
lea       rcx,[rbp+40]
call      qword ptr [7FFF4C71C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,22720801DE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF4C987320]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,10DCD1468EE3
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C7E44B0]
mov       rcx,10DCD1468EE3
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFF4C715B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,esi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF4C82DA58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF4CBBF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFF4C9657E8]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFF4C965800]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,267AE6E0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M06_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M06_L02
test      rbx,rbx
je        short M06_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M06_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M06_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L01
 
call      qword ptr [7FFF4C965D58]
int       3
M06_L02
 
test      rbx,rbx
je        short M06_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M06_L04
M06_L03
 
mov       rax,267AE6E0008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L06
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFF4C83D050]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,1FFCB800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,2405D687688
call      qword ptr [7FFF4C7F4E10]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8596D0]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C83D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      qword ptr [7FFF4CB94CF0]
mov       ecx,0F
mov       rdx,7FFF4CAFD7C0
call      CORINFO_HELP_STRCNS
mov       rbx,rax
mov       ecx,1AC2
mov       rdx,7FFF4C99B8E8
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFF4C676B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFF4CAFD7C0
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFF4C676B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
call      qword ptr [7FFF4CB94AE0]
mov       r8,rax
mov       rdx,rbx
mov       rcx,rsi
call      qword ptr [7FFF4C7F6718]
mov       rcx,rsi
call      CORINFO_HELP_THROW
int       3
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF4C5C7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF4D0CCED0]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,89467E7817F9
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF4C7F4828]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,89467E7817F9
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C7F4390]
mov       rcx,89467E7817F9
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF4C8DE8C8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF4C8DE370]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF4D0C6B38]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1FFCB800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF4D05C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF4D056508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF4D09D710]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF4D05C828]
lea       rcx,[rbp+40]
call      qword ptr [7FFF4C72C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1FFCB801DE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF4C997320]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,89467E7817F9
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C7F44B0]
mov       rcx,89467E7817F9
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2405D670008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FFF4C725B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF4C83DA58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF4CBCF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFF4C9757E8]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFF4C975800]
int       3
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M06_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M06_L02
test      rbx,rbx
je        short M06_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M06_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M06_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L01
 
call      qword ptr [7FFF4C975D58]
int       3
M06_L02
 
test      rbx,rbx
je        short M06_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M06_L04
M06_L03
 
mov       rax,2405D670008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L04
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFF4C8FC150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,241E5C00428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,28273AD7688
call      qword ptr [7FFF4C834810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M00_L05
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8EEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       r15,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[r15+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [r15+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
call      qword ptr [7FFF4CB74CF0]
mov       ecx,0F
mov       rdx,7FFF4CADD7C0
call      CORINFO_HELP_STRCNS
mov       rsi,rax
mov       ecx,1AC2
mov       rdx,7FFF4C97BB90
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rsi
call      qword ptr [7FFF4C666B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFF4CADD7C0
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFF4C666B08]; System.String.Concat(System.String, System.String)
mov       rdi,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
call      qword ptr [7FFF4CB74AE0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbp
call      qword ptr [7FFF4C886670]
mov       rcx,rbp
call      CORINFO_HELP_THROW
M00_L05
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M00_L01
M00_L06
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L02
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF4C5B7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF4D0ACED0]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,7DCD88F8D5D9
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF4C834228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,7DCD88F8D5D9
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C80FD20]
mov       rcx,7DCD88F8D5D9
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF4C7DF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF4C7DF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF4D0A6B38]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,241E5C00298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF4D03C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF4D036508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF4D07D710]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF4D03C828]
lea       rcx,[rbp+40]
call      qword ptr [7FFF4C71C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,241E5C05CE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF4C9775C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,7DCD88F8D5D9
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C80FE40]
mov       rcx,7DCD88F8D5D9
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,28273AC0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M04_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M04_L02
test      rbx,rbx
je        short M04_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M04_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M04_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L01
 
call      qword ptr [7FFF4C85EF40]
int       3
M04_L02
 
test      rbx,rbx
je        short M04_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M04_L04
M04_L03
 
mov       rax,28273AC0008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFF4C715B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M06_L03
cmp       r8d,esi
jl        near ptr M06_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M06_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M06_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M06_L00
 
cmp       ebp,r10d
ja        near ptr M06_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M06_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF4C8FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M06_L07
M06_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M06_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF4CBAF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M06_L04
 
test      eax,eax
jne       short M06_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M06_L00
M06_L05
 
call      qword ptr [7FFF4C85E9D0]
int       3
M06_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M06_L02
M06_L07
 
call      qword ptr [7FFF4C85E9E8]
int       3
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L06
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFF4C90C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,2106AC00428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,250FCA47688
call      qword ptr [7FFF4C844810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      qword ptr [7FFF4CB84CF0]
mov       ecx,0F
mov       rdx,7FFF4CAED7C0
call      CORINFO_HELP_STRCNS
mov       rbx,rax
mov       ecx,1AC2
mov       rdx,7FFF4C98BB90
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFF4C676B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFF4CAED7C0
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFF4C676B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
call      qword ptr [7FFF4CB84AE0]
mov       r8,rax
mov       rdx,rbx
mov       rcx,rsi
call      qword ptr [7FFF4C896670]
mov       rcx,rsi
call      CORINFO_HELP_THROW
int       3
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF4C5C7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF4D0BCEA0]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,6AA279E950C1
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF4C844228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,6AA279E950C1
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C81FD20]
mov       rcx,6AA279E950C1
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF4C7EF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF4C7EF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF4D0B6A48]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,2106AC00298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF4D04C720]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF4D046508]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF4D08D710]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF4D04C828]
lea       rcx,[rbp+40]
call      qword ptr [7FFF4C72C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,2106AC05CE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF4C9875C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,6AA279E950C1
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C81FE40]
mov       rcx,6AA279E950C1
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,250FCA30008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FFF4C725B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF4C90CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF4CBBF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFF4C86E9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFF4C86E9E8]
int       3
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M06_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M06_L02
test      rbx,rbx
je        short M06_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M06_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M06_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L01
 
call      qword ptr [7FFF4C86EF40]
int       3
M06_L02
 
test      rbx,rbx
je        short M06_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M06_L04
M06_L03
 
mov       rax,250FCA30008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L04
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFF4C91C150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,1C9D5800428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,20A637976A8
call      qword ptr [7FFF4C854810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M00_L05
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C90EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       r15,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[r15+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [r15+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
call      qword ptr [7FFF4CB94CF0]
mov       ecx,0F
mov       rdx,7FFF4CAFD7C0
call      CORINFO_HELP_STRCNS
mov       rsi,rax
mov       ecx,1AC2
mov       rdx,7FFF4C99BB90
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rsi
call      qword ptr [7FFF4C686B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFF4CAFD7C0
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFF4C686B08]; System.String.Concat(System.String, System.String)
mov       rdi,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
call      qword ptr [7FFF4CB94AE0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbp
call      qword ptr [7FFF4C8A6670]
mov       rcx,rbp
call      CORINFO_HELP_THROW
M00_L05
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M00_L01
M00_L06
 
mov       rcx,rsi
call      qword ptr [7FFF4C91CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L02
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF4C5D7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF4D0CE2C8]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0C4F912505591
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF4C854228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0C4F912505591
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C82FD20]
mov       rcx,0C4F912505591
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF4C7FF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF4C7FF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF4D0C7AF8]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1C9D5800298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF4D05DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF4D0578B8]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF4D09E940]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF4D05DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FFF4C73C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1C9D1803CF0
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF4C9975C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0C4F912505591
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C82FE40]
mov       rcx,0C4F912505591
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,20A63780008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M04_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M04_L02
test      rbx,rbx
je        short M04_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M04_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M04_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L01
 
call      qword ptr [7FFF4C87EF40]
int       3
M04_L02
 
test      rbx,rbx
je        short M04_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M04_L04
M04_L03
 
mov       rax,20A63780008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFF4C735B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M06_L03
cmp       r8d,esi
jl        near ptr M06_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M06_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M06_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M06_L00
 
cmp       ebp,r10d
ja        near ptr M06_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M06_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF4C91CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M06_L07
M06_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M06_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF4CBCF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M06_L04
 
test      eax,eax
jne       short M06_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M06_L00
M06_L05
 
call      qword ptr [7FFF4C87E9D0]
int       3
M06_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M06_L02
M06_L07
 
call      qword ptr [7FFF4C87E9E8]
int       3
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L06
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFF4C8EC150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,1AD70000428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,1EDFDD476A8
call      qword ptr [7FFF4C824810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M00_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8DEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L01
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M00_L02
M00_L06
 
call      qword ptr [7FFF4CB64CF0]
mov       ecx,0F
mov       rdx,7FFF4CACD7C0
call      CORINFO_HELP_STRCNS
mov       rbx,rax
mov       ecx,1AC2
mov       rdx,7FFF4C96BB90
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFF4C656B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFF4CACD7C0
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFF4C656B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
call      qword ptr [7FFF4CB64AE0]
mov       r8,rax
mov       rdx,rbx
mov       rcx,rsi
call      qword ptr [7FFF4C876670]
mov       rcx,rsi
call      CORINFO_HELP_THROW
int       3
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF4C5A7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF4D09E2C8]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0A293CA7BB38E
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF4C824228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0A293CA7BB38E
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C7FFD20]
mov       rcx,0A293CA7BB38E
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF4C7CF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF4C7CF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF4D097AF8]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1AD70000298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF4D02DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF4D0278B8]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF4D06E940]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF4D02DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FFF4C70C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1AD70005CE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF4C9675C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0A293CA7BB38E
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C7FFE40]
mov       rcx,0A293CA7BB38E
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,1EDFDD30008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M04_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M04_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M04_L03
test      r8b,18
jne       short M04_L01
test      r8b,4
je        short M04_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M04_L00
 
ret
M04_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M04_L00
M04_L02
 
test      r8,r8
je        short M04_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M04_L06
jmp       short M04_L00
M04_L03
 
cmp       r8,40
ja        short M04_L07
M04_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M04_L11
M04_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M04_L00
M04_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M04_L00
M04_L07
 
cmp       r8,800
ja        short M04_L10
mov       r9,r8
shr       r9,6
M04_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M04_L08
and       r8,3F
cmp       r8,10
ja        short M04_L04
jmp       short M04_L05
M04_L09
 
cmp       rcx,rdx
je        near ptr M04_L00
M04_L10
 
jmp       qword ptr [7FFF4C705B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M04_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M04_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M05_L03
cmp       r8d,esi
jl        near ptr M05_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M05_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M05_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M05_L00
 
cmp       ebp,r10d
ja        near ptr M05_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M05_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF4C8ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M05_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M05_L07
M05_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M05_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF4CB9F6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L04
 
test      eax,eax
jne       short M05_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M05_L00
M05_L05
 
call      qword ptr [7FFF4C84E9D0]
int       3
M05_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M05_L02
M05_L07
 
call      qword ptr [7FFF4C84E9E8]
int       3
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M06_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M06_L02
test      rbx,rbx
je        short M06_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M06_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M06_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L01
 
call      qword ptr [7FFF4C84EF40]
int       3
M06_L02
 
test      rbx,rbx
je        short M06_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M06_L04
M06_L03
 
mov       rax,1EDFDD30008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M06_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L04
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFF4C8FC150]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,20C04000428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,24C95CD76A8
call      qword ptr [7FFF4C834810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M00_L05
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8EEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       r15,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[r15+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [r15+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
call      qword ptr [7FFF4CB74CF0]
mov       ecx,0F
mov       rdx,7FFF4CADD7C0
call      CORINFO_HELP_STRCNS
mov       rsi,rax
mov       ecx,1AC2
mov       rdx,7FFF4C97BB90
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rsi
call      qword ptr [7FFF4C666B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFF4CADD7C0
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFF4C666B08]; System.String.Concat(System.String, System.String)
mov       rdi,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
call      qword ptr [7FFF4CB74AE0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbp
call      qword ptr [7FFF4C886670]
mov       rcx,rbp
call      CORINFO_HELP_THROW
M00_L05
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M00_L01
M00_L06
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L02
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF4C5B7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF4D0AE2C8]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0A44B9A4B84D2
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF4C834228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0A44B9A4B84D2
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C80FD20]
mov       rcx,0A44B9A4B84D2
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF4C7DF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF4C7DF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF4D0A7AF8]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,20C04000298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF4D03DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF4D0378B8]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF4D07E940]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF4D03DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FFF4C71C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,20C04005CE8
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF4C9775C8]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0A44B9A4B84D2
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C80FE40]
mov       rcx,0A44B9A4B84D2
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,24C95CC0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M04_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M04_L02
test      rbx,rbx
je        short M04_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M04_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M04_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L01
 
call      qword ptr [7FFF4C85EF40]
int       3
M04_L02
 
test      rbx,rbx
je        short M04_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M04_L04
M04_L03
 
mov       rax,24C95CC0008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M05_L00
 
ret
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M05_L00
M05_L02
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M05_L06
jmp       short M05_L00
M05_L03
 
cmp       r8,40
ja        short M05_L07
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L11
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M05_L00
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFF4C715B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M06_L03
cmp       r8d,esi
jl        near ptr M06_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M06_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M06_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M06_L00
 
cmp       ebp,r10d
ja        near ptr M06_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M06_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF4C8FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M06_L07
M06_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M06_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF4CBAF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M06_L04
 
test      eax,eax
jne       short M06_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M06_L00
M06_L05
 
call      qword ptr [7FFF4C85E9D0]
int       3
M06_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M06_L02
M06_L07
 
call      qword ptr [7FFF4C85E9E8]
int       3
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ReadOnlySpanBytesToStringComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdx,[rbx+280]
test      rdx,rdx
je        near ptr M00_L04
lea       rdi,[rdx+10]
mov       ebp,[rdx+8]
lea       edx,[rbp+rbp]
mov       rcx,rsi
call      qword ptr [7FFF4C977600]; System.Text.StringBuilder.set_Capacity(Int32)
xor       r14d,r14d
mov       rcx,[rbx+280]
cmp       dword ptr [rcx+8],0
je        near ptr M00_L03
M00_L00
 
cmp       r14d,ebp
jae       near ptr M00_L07
mov       ecx,r14d
add       rcx,rdi
mov       r8,1EB98400428
mov       r8,[r8]
movzx     ecx,byte ptr [rcx]
mov       rdx,22C260B76A8
call      qword ptr [7FFF4C854810]; System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
test      rax,rax
je        short M00_L02
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L02
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        near ptr M00_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M00_L05
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
M00_L01
 
mov       [rsi+18],r15d
M00_L02
 
inc       r14d
mov       rcx,[rbx+280]
mov       ecx,[rcx+8]
movsxd    rax,r14d
cmp       rcx,rax
jg        near ptr M00_L00
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C9B3E68]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       r15,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[r15+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [r15+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L04
 
call      qword ptr [7FFF4CB94CF0]
mov       ecx,0F
mov       rdx,7FFF4CAFD7C0
call      CORINFO_HELP_STRCNS
mov       rsi,rax
mov       ecx,1AC2
mov       rdx,7FFF4C915A78
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rsi
call      qword ptr [7FFF4C686B08]; System.String.Concat(System.String, System.String)
mov       rbx,rax
mov       ecx,1
mov       rdx,7FFF4CAFD7C0
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       rcx,rbx
call      qword ptr [7FFF4C686B08]; System.String.Concat(System.String, System.String)
mov       rdi,rax
mov       rcx,offset MT_System.ArgumentNullException
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
call      qword ptr [7FFF4CB94AE0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbp
call      qword ptr [7FFF4C8A6670]
mov       rcx,rbp
call      CORINFO_HELP_THROW
M00_L05
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M00_L01
M00_L06
 
mov       rcx,rsi
call      qword ptr [7FFF4C97C2E8]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M00_L02
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.set_Capacity(Int32)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
test      esi,esi
jl        short M01_L02
cmp       esi,[rbx+20]
jg        near ptr M01_L03
mov       edx,[rbx+1C]
mov       ecx,edx
add       ecx,[rbx+18]
cmp       ecx,esi
jg        near ptr M01_L04
mov       rcx,[rbx+8]
mov       r8d,edx
add       r8d,[rcx+8]
cmp       r8d,esi
je        short M01_L01
sub       esi,edx
mov       edx,esi
cmp       edx,400
jl        near ptr M01_L05
mov       rcx,offset MT_System.Char[]
mov       r8d,10
call      System.GC.AllocateNewArray(IntPtr, Int32, GC_ALLOC_FLAGS)
mov       rsi,rax
M01_L00
 
mov       rcx,[rbx+8]
mov       r8d,[rbx+18]
mov       rdx,rsi
call      qword ptr [7FFF4C5D7738]; System.Array.Copy(System.Array, System.Array, Int32)
lea       rcx,[rbx+8]
mov       rdx,rsi
call      CORINFO_HELP_ASSIGN_REF
M01_L01
 
nop
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L02
 
mov       ecx,2E5
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rdx,rax
mov       ecx,esi
call      qword ptr [7FFF4D0CDD88]
int       3
M01_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF3F0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L04
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,2E5
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF888]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M01_L05
 
movsxd    rdx,edx
mov       rcx,offset MT_System.Char[]
call      CORINFO_HELP_NEWARR_1_VC
mov       rsi,rax
jmp       near ptr M01_L00
 
System.Number.g__FormatUInt32Slow|43_0(UInt32, System.String, System.IFormatProvider)
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,0E0
lea       rbp,[rsp+30]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
vmovdqa   xmmword ptr [rbp+20],xmm4
mov       rax,0FFFFFFFFFFFFFFA0
M02_L00
 
vmovdqa   xmmword ptr [rbp+rax+90],xmm4
vmovdqa   xmmword ptr [rbp+rax+0A0],xmm4
vmovdqa   xmmword ptr [rbp+rax+0B0],xmm4
add       rax,30
jne       short M02_L00
mov       rax,0C19E5700A4EB
mov       [rbp+0A8],rax
mov       rbx,r8
mov       esi,ecx
test      rdx,rdx
jne       short M02_L01
xor       edi,edi
xor       r14d,r14d
jmp       short M02_L02
M02_L01
 
lea       rdi,[rdx+0C]
mov       r14d,[rdx+8]
M02_L02
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       rcx,[rbp+28]
lea       rdx,[rbp+90]
call      qword ptr [7FFF4C854228]; System.Number.ParseFormatSpecifier(System.ReadOnlySpan`1, Int32 ByRef)
mov       r15d,eax
mov       r13d,r15d
and       r13d,0FFDF
cmp       r13d,47
je        short M02_L03
cmp       r13d,44
jne       short M02_L04
jmp       near ptr M02_L27
M02_L03
 
cmp       dword ptr [rbp+90],0
jle       near ptr M02_L27
M02_L04
 
cmp       r13d,58
jne       near ptr M02_L12
mov       r13d,[rbp+90]
mov       ecx,1
test      r13d,r13d
cmovle    r13d,ecx
mov       ecx,esi
or        rcx,1
lzcnt     rcx,rcx
xor       ecx,3F
sar       ecx,2
inc       ecx
cmp       r13d,ecx
mov       ebx,ecx
cmovge    ebx,r13d
mov       ecx,ebx
call      System.String.FastAllocateString(Int32)
test      rax,rax
je        near ptr M02_L11
lea       rcx,[rax+0C]
mov       [rbp+38],rcx
mov       rcx,[rbp+38]
M02_L05
 
movsxd    rdx,ebx
lea       rcx,[rcx+rdx*2]
mov       edx,r13d
dec       edx
js        short M02_L08
M02_L06
 
mov       r8d,esi
and       r8d,0F
add       rcx,0FFFFFFFFFFFFFFFE
cmp       r8d,0A
jge       short M02_L10
mov       r10d,30
M02_L07
 
add       r8d,r10d
mov       [rcx],r8w
shr       esi,4
dec       edx
jns       short M02_L06
M02_L08
 
test      esi,esi
jne       short M02_L06
xor       ecx,ecx
mov       [rbp+38],rcx
mov       rcx,0C19E5700A4EB
cmp       [rbp+0A8],rcx
je        short M02_L09
call      CORINFO_HELP_FAIL_FAST
M02_L09
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L10
 
lea       r10d,[r15-21]
movzx     r10d,r10w
jmp       short M02_L07
M02_L11
 
xor       ecx,ecx
jmp       short M02_L05
M02_L12
 
cmp       r13d,42
jne       short M02_L14
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C82FD20]
mov       rcx,0C19E5700A4EB
cmp       [rbp+0A8],rcx
je        short M02_L13
call      CORINFO_HELP_FAIL_FAST
M02_L13
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L14
 
test      rbx,rbx
je        short M02_L15
mov       rcx,rbx
call      qword ptr [7FFF4C7FF8B8]; System.Globalization.NumberFormatInfo.g__GetProviderNonNull|58_0(System.IFormatProvider)
mov       rbx,rax
jmp       short M02_L16
M02_L15
 
call      qword ptr [7FFF4C7FF360]; System.Globalization.NumberFormatInfo.get_CurrentInfo()
mov       rbx,rax
M02_L16
 
lea       r8,[rbp+98]
mov       [rbp+18],r8
mov       dword ptr [rbp+20],0B
lea       r8,[rbp+18]
lea       rcx,[rbp+70]
mov       edx,1
call      qword ptr [7FFF4D0C7AF8]
mov       dword ptr [rbp+70],0A
mov       byte ptr [rbp+78],0
mov       rdx,[rbp+80]
lea       rcx,[rdx+0A]
mov       eax,esi
xor       r8d,r8d
cmp       eax,64
jb        short M02_L18
M02_L17
 
add       rcx,0FFFFFFFFFFFFFFFE
add       r8d,0FFFFFFFE
mov       r10d,eax
imul      r10,51EB851F
shr       r10,25
imul      r9d,r10d,64
sub       eax,r9d
mov       r9,1EB98400298
mov       r9,[r9]
add       eax,eax
mov       ax,[r9+rax+10]
mov       [rcx],ax
cmp       r10d,64
mov       eax,r10d
jae       short M02_L17
M02_L18
 
test      eax,eax
je        short M02_L20
M02_L19
 
dec       r8d
mov       r10d,0CCCCCCCD
mov       r9d,eax
imul      r10,r9
shr       r10,23
lea       r9d,[r10+r10*4]
add       r9d,r9d
mov       r11d,eax
sub       r11d,r9d
mov       eax,r10d
dec       rcx
add       r11d,30
mov       [rcx],r11b
test      eax,eax
jne       short M02_L19
M02_L20
 
test      r8d,r8d
jg        short M02_L19
add       rdx,0A
sub       rdx,rcx
mov       [rbp+70],edx
mov       [rbp+74],edx
mov       rax,[rbp+80]
jmp       short M02_L22
M02_L21
 
lea       r8,[rax+1]
lea       r10,[rcx+1]
movzx     ecx,byte ptr [rcx]
mov       [rax],cl
mov       rax,r8
mov       rcx,r10
M02_L22
 
dec       edx
jns       short M02_L21
mov       byte ptr [rax],0
test      [rsp],esp
sub       rsp,40
lea       rdx,[rsp+30]
mov       [rbp+8],rdx
mov       dword ptr [rbp+10],20
lea       rdx,[rbp+8]
lea       rcx,[rbp+50]
call      qword ptr [7FFF4D05DD28]
test      r15d,r15d
je        short M02_L23
mov       [rsp+20],rbx
lea       rcx,[rbp+50]
lea       rdx,[rbp+70]
mov       r8d,r15d
mov       r9d,[rbp+90]
call      qword ptr [7FFF4D0578B8]; System.Number.NumberToString[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, Char, Int32, System.Globalization.NumberFormatInfo)
jmp       short M02_L24
M02_L23
 
mov       [rbp+28],rdi
mov       [rbp+30],r14d
lea       r8,[rbp+28]
lea       rdx,[rbp+70]
lea       rcx,[rbp+50]
mov       r9,rbx
call      qword ptr [7FFF4D09E940]; System.Number.NumberToStringFormat[[System.Char, System.Private.CoreLib]](System.Collections.Generic.ValueListBuilder`1 ByRef, NumberBuffer ByRef, System.ReadOnlySpan`1, System.Globalization.NumberFormatInfo)
M02_L24
 
lea       rcx,[rbp+50]
lea       rdx,[rbp+40]
call      qword ptr [7FFF4D05DE30]
lea       rcx,[rbp+40]
call      qword ptr [7FFF4C73C210]; System.ReadOnlySpan`1[[System.Char, System.Private.CoreLib]].ToString()
mov       rbx,rax
mov       rdx,[rbp+50]
test      rdx,rdx
je        short M02_L25
xor       ecx,ecx
mov       [rbp+50],rcx
mov       rcx,1EB94403C80
mov       rcx,[rcx]
xor       r8d,r8d
call      qword ptr [7FFF4C8B9110]; Precode of System.Buffers.SharedArrayPool`1[[System.Char, System.Private.CoreLib]].Return(Char[], Boolean)
M02_L25
 
mov       rax,rbx
mov       rcx,0C19E5700A4EB
cmp       [rbp+0A8],rcx
je        short M02_L26
call      CORINFO_HELP_FAIL_FAST
M02_L26
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M02_L27
 
mov       ecx,esi
mov       edx,[rbp+90]
call      qword ptr [7FFF4C82FE40]
mov       rcx,0C19E5700A4EB
cmp       [rbp+0A8],rcx
je        short M02_L28
call      CORINFO_HELP_FAIL_FAST
M02_L28
 
nop
lea       rsp,[rbp+0B0]
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,22C260A0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.String.Concat(System.String, System.String)
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
test      rsi,rsi
je        near ptr M04_L02
mov       edi,[rsi+8]
test      edi,edi
je        short M04_L02
test      rbx,rbx
je        short M04_L00
mov       ebp,[rbx+8]
test      ebp,ebp
je        short M04_L00
mov       r14d,edi
lea       ecx,[r14+rbp]
test      ecx,ecx
jl        short M04_L01
call      System.String.FastAllocateString(Int32)
mov       r15,rax
cmp       [r15],r15b
lea       rcx,[r15+0C]
lea       rdx,[rsi+0C]
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
movsxd    r8,r14d
lea       rcx,[r15+r8*2+0C]
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r15
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L00
 
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L01
 
call      qword ptr [7FFF4C87EF40]
int       3
M04_L02
 
test      rbx,rbx
je        short M04_L03
mov       ebp,[rbx+8]
xor       eax,eax
test      ebp,ebp
sete      al
test      eax,eax
je        short M04_L04
M04_L03
 
mov       rax,22C260A0008
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M04_L04
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L02
test      r8b,18
je        short M05_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M05_L00
 
ret
M05_L01
 
test      r8b,4
je        short M05_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M05_L00
M05_L02
 
cmp       r8,40
ja        short M05_L07
M05_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L06
M05_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L00
M05_L05
 
test      r8,r8
je        short M05_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M05_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M05_L00
M05_L06
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L04
M05_L07
 
cmp       r8,800
ja        short M05_L10
mov       r9,r8
shr       r9,6
M05_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L08
and       r8,3F
cmp       r8,10
ja        near ptr M05_L03
jmp       near ptr M05_L04
M05_L09
 
cmp       rcx,rdx
je        near ptr M05_L00
M05_L10
 
jmp       qword ptr [7FFF4C735B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,rdx
mov       esi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,esi
cmp       r8d,[rbx+20]
jg        near ptr M06_L03
cmp       r8d,esi
jl        near ptr M06_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M06_L01
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M06_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M06_L00
 
cmp       ebp,r10d
ja        near ptr M06_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M06_L01
 
sub       esi,ebp
mov       rcx,rbx
mov       edx,esi
call      qword ptr [7FFF4C97C3A8]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rdi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M06_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       esi,r14d
ja        near ptr M06_L07
M06_L02
 
mov       r8d,esi
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],esi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M06_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rdi,rax
call      qword ptr [7FFF4CBCF6C0]
mov       r8,rax
mov       rdx,rdi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M06_L04
 
test      eax,eax
jne       short M06_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M06_L00
M06_L05
 
call      qword ptr [7FFF4C87E9D0]
int       3
M06_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       esi,r14d
jbe       short M06_L02
M06_L07
 
call      qword ptr [7FFF4C87E9E8]
int       3
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
cmp       dword ptr [rdi+8],0
jle       near ptr M00_L06
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1CCD1800428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,20D5F657688
call      qword ptr [7FFF4C666C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L05
lea       rdx,[rax+0C]
mov       r14d,[rax+8]
test      r14d,r14d
je        short M00_L05
mov       r8,[rsi+8]
mov       r15d,[rsi+18]
lea       ecx,[r15+r14]
cmp       ecx,[r8+8]
ja        short M00_L04
movsxd    rcx,r15d
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jle       short M00_L02
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       r14d,r15d
mov       [rsi+18],r14d
jmp       short M00_L05
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
call      qword ptr [7FFF4D0DCE40]
test      eax,eax
je        near ptr M00_L13
jmp       near ptr M00_L12
M00_L04
 
mov       rcx,rsi
mov       r8d,r14d
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L05
 
inc       ebp
cmp       [rdi+8],ebp
jg        near ptr M00_L00
M00_L06
 
mov       rcx,rsi
call      qword ptr [7FFF4C8EEB18]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L07
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
jne       short M00_L10
jmp       short M00_L08
M00_L07
 
call      qword ptr [7FFF4D0DCE40]
test      eax,eax
jne       short M00_L10
M00_L08
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L09
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
jne       short M00_L10
jmp       near ptr M00_L24
M00_L09
 
call      qword ptr [7FFF4D0DCE40]
test      eax,eax
je        near ptr M00_L24
M00_L10
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L11
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       near ptr M00_L03
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L11
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFF4D0DCE40]
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFF4D0DCE40]
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       r15,rsi
M00_L21
 
mov       [rsp+38],r15
mov       rdi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rdi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rdi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       r15,rax
mov       r8d,ebp
cmp       [r15],r15b
lea       rcx,[r15+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       r15,20D5F640008
jmp       short M00_L21
M00_L24
 
mov       r15,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0B21C1A506761
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C8F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0B21C1A506761
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8866E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
je        short M02_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L00
 
ret
M02_L01
 
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L06
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L03
jmp       short M02_L04
M02_L08
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L09
 
jmp       qword ptr [7FFF4C715B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M02_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C8FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C85E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C85E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,20D5F640008
add       rsp,28
pop       rbx
pop       rsi
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,40
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,17F00400428
mov       r8,[r8]
mov       [rsp+38],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],1
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,1BF92257688
call      qword ptr [7FFF4C676C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r15d,[rax+8]
test      r15d,r15d
je        short M00_L04
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L02
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FEB18]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFF4D0ECD50]
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFF4D0ECD50]
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L12
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L14
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L12
M00_L11
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L12
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        near ptr M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L13
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L14
 
call      qword ptr [7FFF4D0ECD50]
test      eax,eax
je        short M00_L12
jmp       short M00_L11
M00_L15
 
call      qword ptr [7FFF4D0ECD50]
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L13
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFF4D0ECD50]
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       r15,rsi
M00_L21
 
mov       [rsp+30],r15
mov       rdi,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rdi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rdi+8],rax
add       rsp,40
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       r15,rax
mov       r8d,ebp
cmp       [r15],r15b
lea       rcx,[r15+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       r15,1BF92240008
jmp       short M00_L21
M00_L24
 
mov       r15,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,1DF07425E378
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C9070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C9071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,1DF07425E378
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C907318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L02
M02_L00
 
test      r8,r8
je        short M02_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L02
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L02
 
ret
M02_L03
 
cmp       r8,40
ja        short M02_L06
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L02
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L08
 
cmp       rcx,rdx
je        short M02_L02
M02_L09
 
jmp       qword ptr [7FFF4C725B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C90CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C86E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C86E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1BF92240008
add       rsp,28
pop       rbx
pop       rsi
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,21B70800428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,25BFE547688
call      qword ptr [7FFF4C676C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FEB18]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       ecx,ecx
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFF4CF4E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFF4CF4E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFF4CF4E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFF4CF4E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFF4CF4E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+38],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,25BFE530008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0F25679BF3A25
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C9070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C9071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0F25679BF3A25
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C907318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L02
M02_L00
 
test      r8,r8
je        short M02_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L02
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L02
 
ret
M02_L03
 
cmp       r8,40
ja        short M02_L06
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L02
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L08
 
cmp       rcx,rdx
je        short M02_L02
M02_L09
 
jmp       qword ptr [7FFF4C725B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C90CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C86E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C86E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,25BFE530008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFFAC017370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFFAC030750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,27338400428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,2B3C6227688
call      qword ptr [7FFF4C666C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8EEB18]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFF4CF3E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFF4CF3E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFF4CF3E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFF4CF3E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFF4CF3E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+38],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,2B3C6210008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,76D820F87792
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C8F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,76D820F87792
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8866E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
je        short M02_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L00
 
ret
M02_L01
 
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L06
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L03
jmp       short M02_L04
M02_L08
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L09
 
jmp       qword ptr [7FFF4C715B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M02_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C8FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C85E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C85E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2B3C6210008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFFAC017370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFFAC030750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,14998800428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,18A267476A8
call      qword ptr [7FFF4C656C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8DEB18]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFF4CF2E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFF4CF2E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFF4CF2E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFF4CF2E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFF4CF2E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+38],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,18A26730008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0FE63C6E7BF76
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C8E70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8E71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0FE63C6E7BF76
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8E7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8766E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L02
M02_L00
 
test      r8,r8
je        short M02_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L02
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L02
 
ret
M02_L03
 
cmp       r8,40
ja        short M02_L06
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L02
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L08
 
cmp       rcx,rdx
je        short M02_L02
M02_L09
 
jmp       qword ptr [7FFF4C705B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C8ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C84E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C84E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,18A26730008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFFAC017370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFFAC030750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,230F7000428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,27188F976A8
call      qword ptr [7FFF4C686C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C91CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C90EB18]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFF4CF5E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFF4CF5E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFF4CF5E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFF4CF5E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFF4CF5E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+38],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,27188F80008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,912354B7528B
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C9170D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C9171E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,912354B7528B
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C917318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8A66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF4C735B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C91CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C87E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C87E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,27188F80008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFFAC017370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFFAC030750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1B064000428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,1F0F5FF76A8
call      qword ptr [7FFF4C646C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C6F5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8CEB18]; System.Text.StringBuilder.ToString()
mov       rsi,rax
mov       edi,[rsi+8]
test      edi,edi
je        near ptr M00_L24
movzx     ecx,word ptr [rsi+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFF4CF1E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       ebp,[rdi-1]
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L24
M00_L08
 
call      qword ptr [7FFF4CF1E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L24
M00_L09
 
xor       r14d,r14d
test      edi,edi
jle       short M00_L13
M00_L10
 
mov       ecx,r14d
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFF4CF1E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L13
M00_L12
 
inc       r14d
cmp       edi,r14d
jg        short M00_L10
M00_L13
 
lea       ebp,[rdi-1]
cmp       ebp,r14d
jl        short M00_L20
mov       ecx,ebp
or        ecx,r14d
jl        short M00_L17
cmp       edi,ebp
jle       short M00_L17
M00_L14
 
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFF4CF1E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L16
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       ebp,edi
jae       near ptr M00_L25
mov       ecx,ebp
movzx     ecx,word ptr [rsi+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFF4CF1E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       ebp
cmp       ebp,r14d
jge       short M00_L17
M00_L20
 
sub       ebp,r14d
inc       ebp
cmp       edi,ebp
jne       short M00_L22
mov       rdi,rsi
M00_L21
 
mov       [rsp+38],rdi
mov       rsi,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rsi+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rsi+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
M00_L22
 
test      ebp,ebp
je        short M00_L23
mov       ecx,ebp
call      System.String.FastAllocateString(Int32)
mov       rdi,rax
mov       r8d,ebp
cmp       [rdi],dil
lea       rcx,[rdi+0C]
mov       edx,r14d
lea       rdx,[rsi+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFF4C6F5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rdi,1F0F5FE0008
jmp       short M00_L21
M00_L24
 
mov       rdi,rsi
jmp       short M00_L21
M00_L25
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0C736B2AD5DEA
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C8D70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8D71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0C736B2AD5DEA
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8D7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C4F4000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8666E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L02
M02_L00
 
test      r8,r8
je        short M02_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L02
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L02
 
ret
M02_L03
 
cmp       r8,40
ja        short M02_L06
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L02
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L08
 
cmp       rcx,rdx
je        short M02_L02
M02_L09
 
jmp       qword ptr [7FFF4C6F5B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C6F5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C8DCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C6F5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C4F4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB8F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C6FD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C83E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C83E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C6F5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C4F4000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB8F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C6FD470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1F0F5FE0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFFAC017370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFFAC030750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpaceComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,40
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,18FCB400428
mov       r8,[r8]
mov       [rsp+38],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],1
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,1D05D3776A8
call      qword ptr [7FFF4C666C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        near ptr M00_L24
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8EEB18]; System.Text.StringBuilder.ToString()
mov       r13,rax
mov       esi,[r13+8]
test      esi,esi
je        near ptr M00_L25
movzx     ecx,word ptr [r13+0C]
cmp       ecx,100
jae       short M00_L06
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       short M00_L07
M00_L06
 
call      qword ptr [7FFF4CF3E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
jne       short M00_L09
M00_L07
 
lea       edi,[rsi-1]
mov       ecx,edi
movzx     ecx,word ptr [r13+rcx*2+0C]
cmp       ecx,100
jae       short M00_L08
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
jne       short M00_L09
jmp       near ptr M00_L25
M00_L08
 
call      qword ptr [7FFF4CF3E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        near ptr M00_L25
M00_L09
 
xor       ebp,ebp
test      esi,esi
jle       short M00_L13
M00_L10
 
mov       ecx,ebp
movzx     ecx,word ptr [r13+rcx*2+0C]
cmp       ecx,100
jae       short M00_L11
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L13
jmp       short M00_L12
M00_L11
 
call      qword ptr [7FFF4CF3E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L13
M00_L12
 
inc       ebp
cmp       esi,ebp
jg        short M00_L10
M00_L13
 
lea       edi,[rsi-1]
cmp       edi,ebp
jl        short M00_L20
mov       ecx,edi
or        ecx,ebp
jl        short M00_L17
cmp       esi,edi
jle       short M00_L17
M00_L14
 
mov       ecx,edi
movzx     ecx,word ptr [r13+rcx*2+0C]
cmp       ecx,100
jae       short M00_L15
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L16
M00_L15
 
call      qword ptr [7FFF4CF3E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L16
 
dec       edi
cmp       edi,ebp
jge       short M00_L14
jmp       short M00_L20
M00_L17
 
cmp       edi,esi
jae       near ptr M00_L26
mov       ecx,edi
movzx     ecx,word ptr [r13+rcx*2+0C]
cmp       ecx,100
jae       short M00_L18
mov       rax,7FFFAB5B2E40
test      byte ptr [rcx+rax],80
je        short M00_L20
jmp       short M00_L19
M00_L18
 
call      qword ptr [7FFF4CF3E028]; System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
test      eax,eax
je        short M00_L20
M00_L19
 
dec       edi
cmp       edi,ebp
jge       short M00_L17
M00_L20
 
mov       r14d,edi
sub       r14d,ebp
inc       r14d
cmp       esi,r14d
jne       short M00_L22
mov       rsi,r13
M00_L21
 
mov       [rsp+30],rsi
mov       r15,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[r15+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [r15+8],rax
add       rsp,40
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L22
 
test      r14d,r14d
je        short M00_L23
mov       ecx,r14d
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
mov       r8d,r14d
cmp       [rsi],sil
lea       rcx,[rsi+0C]
mov       edx,ebp
lea       rdx,[r13+rdx*2+0C]
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L21
M00_L23
 
mov       rsi,1D05D360008
jmp       short M00_L21
M00_L24
 
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
jmp       near ptr M00_L01
M00_L25
 
mov       rsi,r13
jmp       short M00_L21
M00_L26
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,8145ABB5ACDD
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C8F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,8145ABB5ACDD
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8866E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
je        short M02_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L00
 
ret
M02_L01
 
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L06
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L03
jmp       short M02_L04
M02_L08
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L09
 
jmp       qword ptr [7FFF4C715B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M02_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C8FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C85E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C85E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1D05D360008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CharUnicodeInfo.GetIsWhiteSpace(Char)
sub       rsp,28
movzx     ecx,cx
call      qword ptr [7FFFAC017370]; Precode of System.Globalization.CharUnicodeInfo.GetCategoryCasingTableOffsetNoBoundsChecks(UInt32)
mov       rcx,[7FFFAC030750]
cmp       byte ptr [rcx+rax],0
setl      al
movzx     eax,al
add       rsp,28
ret
 
Extern method
System.String.FastAllocateString(Int32)

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,40
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,25AE9C00428
mov       r8,[r8]
mov       [rsp+38],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],1
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,29B7BC67688
call      qword ptr [7FFF4C666C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r15d,[rax+8]
test      r15d,r15d
je        short M00_L04
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L02
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFF4C82D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8496D0]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,40
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0D2F746ED11E5
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C82C000]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C82C108]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0D2F746ED11E5
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C82C240]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C7E6790]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF4C715B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C82DA58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C9657E8]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C965800]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,29B7BC50008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,186CB800428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,1C7595A7688
call      qword ptr [7FFF4C676C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,474DAEDD1DE0
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C9070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C9071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,474DAEDD1DE0
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C907318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
je        short M02_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L00
 
ret
M02_L01
 
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L06
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L03
jmp       short M02_L04
M02_L08
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L09
 
jmp       qword ptr [7FFF4C725B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M02_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C90CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C86E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C86E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1C759590008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,1542D800428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,194BB747688
call      qword ptr [7FFF4C656C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8DEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0B71F72D3A190
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C8E70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8E71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0B71F72D3A190
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8E7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8766E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
je        short M02_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L00
 
ret
M02_L01
 
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L06
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L03
jmp       short M02_L04
M02_L08
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L09
 
jmp       qword ptr [7FFF4C705B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M02_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C8ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C84E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C84E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,194BB730008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,232B1400428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,273432A7688
call      qword ptr [7FFF4C656C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8DEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,1AAF495FA4BB
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C8E70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8E71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,1AAF495FA4BB
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8E7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8766E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
je        short M02_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L00
 
ret
M02_L01
 
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L06
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L03
jmp       short M02_L04
M02_L08
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L09
 
jmp       qword ptr [7FFF4C705B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M02_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C8ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C84E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C84E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,27343290008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,18E59000428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,1CEE6E376A8
call      qword ptr [7FFF4C686C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C91CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C90EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0E6EC114F279B
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C9170D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C9171E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0E6EC114F279B
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C917318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8A66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
je        short M02_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L00
 
ret
M02_L01
 
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L06
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L03
jmp       short M02_L04
M02_L08
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L09
 
jmp       qword ptr [7FFF4C735B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M02_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C91CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C87E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C87E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1CEE6E20008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,22C46C00428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,26CD89476A8
call      qword ptr [7FFF4C686C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C91CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C90EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,46DD9D5CFEE8
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C9170D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C9171E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,46DD9D5CFEE8
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C917318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8A66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L02
M02_L00
 
test      r8,r8
je        short M02_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L02
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L02
 
ret
M02_L03
 
cmp       r8,40
ja        short M02_L06
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L02
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L08
 
cmp       rcx,rdx
je        short M02_L02
M02_L09
 
jmp       qword ptr [7FFF4C735B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C91CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C87E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C87E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,26CD8930008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,24788400428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,2881A4176A8
call      qword ptr [7FFF4C686C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C91CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C90EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,82FE77A50B62
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C9170D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C9171E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,82FE77A50B62
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C917318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8A66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
je        short M02_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L00
 
ret
M02_L01
 
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L06
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L03
jmp       short M02_L04
M02_L08
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L09
 
jmp       qword ptr [7FFF4C735B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M02_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C91CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C87E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C87E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2881A400008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineComparison()
push      r15
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+290]
xor       ebp,ebp
mov       r14d,[rdi+8]
test      r14d,r14d
jle       near ptr M00_L05
M00_L00
 
mov       ecx,ebp
mov       rcx,[rdi+rcx*8+10]
mov       r8,23571C00428
mov       r8,[r8]
mov       [rsp+40],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],1
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,275FF9F76A8
call      qword ptr [7FFF4C676C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],r15d
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       ebp
cmp       r14d,ebp
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
pop       r15
ret
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0A3EC4FF34332
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C9070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C9071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0A3EC4FF34332
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C907318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
je        short M02_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L00
 
ret
M02_L01
 
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L06
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L03
jmp       short M02_L04
M02_L08
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L09
 
jmp       qword ptr [7FFF4C725B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M02_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C90CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C86E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C86E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,275FF9E0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,50
vzeroupper
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
vmovdqa   xmmword ptr [rsp+40],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,27478000428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+40],xmm0
mov       [rsp+40],rbp
mov       [rsp+48],rax
lea       r8,[rsp+40]
mov       [rsp+28],r8
mov       dword ptr [rsp+30],2
lea       r8,[rsp+28]
mov       rdx,2B509EC7688
call      qword ptr [7FFF4C676C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       ebp,[rax+8]
test      ebp,ebp
je        short M00_L04
mov       r8,[rsi+8]
mov       r14d,[rsi+18]
lea       ecx,[r14+rbp]
cmp       ecx,[r8+8]
ja        short M00_L03
movsxd    rcx,r14d
lea       rcx,[r8+rcx*2+10]
cmp       ebp,2
jle       short M00_L02
movsxd    r8,ebp
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       ebp,r14d
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       ebp,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
mov       r8d,ebp
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,50
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0DE16B65003D4
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C9070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C9071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0DE16B65003D4
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C907318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF4C725B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C90CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C86E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C86E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2B509EB0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,2187E400428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,25910487688
call      qword ptr [7FFF4C656C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8DEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0F268D072FCA2
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C8E70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8E71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0F268D072FCA2
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8E7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8766E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF4C705B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C8ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C84E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C84E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,25910470008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,226F6800428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,26784517688
call      qword ptr [7FFF4C656C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8DEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,1FED4B48D39E
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C8E70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8E71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,1FED4B48D39E
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8E7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8766E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
je        short M02_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L00
 
ret
M02_L01
 
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L06
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L03
jmp       short M02_L04
M02_L08
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L09
 
jmp       qword ptr [7FFF4C705B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M02_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C8ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C84E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C84E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,26784500008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,1E64A800428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,226D8797688
call      qword ptr [7FFF4C666C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8EEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,163E6937282A
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C8F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,163E6937282A
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8866E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF4C715B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C8FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C85E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C85E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,226D8780008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,15B37400428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,19BC53876A8
call      qword ptr [7FFF4C676C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,5E25C2088CF2
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C9070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C9071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,5E25C2088CF2
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C907318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L02
M02_L00
 
test      r8,r8
je        short M02_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L02
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L02
 
ret
M02_L03
 
cmp       r8,40
ja        short M02_L06
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L02
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L08
 
cmp       rcx,rdx
je        short M02_L02
M02_L09
 
jmp       qword ptr [7FFF4C725B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C90CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C86E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C86E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,19BC5370008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,1DD6EC00428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,21E00AC76A8
call      qword ptr [7FFF4C676C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0CC08C740092
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C9070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C9071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0CC08C740092
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C907318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
je        short M02_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L00
 
ret
M02_L01
 
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L06
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L03
jmp       short M02_L04
M02_L08
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L09
 
jmp       qword ptr [7FFF4C725B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M02_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C90CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C86E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C86E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,21E00AB0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,21F0E400428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,25FA02D76A8
call      qword ptr [7FFF4C686C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C91CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C90EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0D9A75028C5C8
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C9170D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C9171E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0D9A75028C5C8
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C917318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8A66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L02
M02_L00
 
test      r8,r8
je        short M02_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L02
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L02
 
ret
M02_L03
 
cmp       r8,40
ja        short M02_L06
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L02
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L08
 
cmp       rcx,rdx
je        short M02_L02
M02_L09
 
jmp       qword ptr [7FFF4C735B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C91CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C87E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C87E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,25FA02C0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatCharComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L07
mov       eax,edi
mov       rbp,[rcx+rax*8+10]
mov       rcx,offset MT_System.Char
call      CORINFO_HELP_NEWSFAST
mov       rcx,292E9400428
mov       rcx,[rcx]
mov       word ptr [rax+8],2C
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rbp
mov       [rsp+40],rax
lea       r8,[rsp+38]
mov       [rsp+20],r8
mov       dword ptr [rsp+28],2
lea       r8,[rsp+20]
mov       rdx,2D37B1A76A8
call      qword ptr [7FFF4C676C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M00_L06
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
jmp       short M00_L01
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,37153FB2C9A5
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C9070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C9071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,37153FB2C9A5
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C907318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L02
M02_L00
 
test      r8,r8
je        short M02_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L02
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L02
 
ret
M02_L03
 
cmp       r8,40
ja        short M02_L06
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L02
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L08
 
cmp       rcx,rdx
je        short M02_L02
M02_L09
 
jmp       qword ptr [7FFF4C725B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C90CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C86E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C86E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2D37B190008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,50
vzeroupper
xor       eax,eax
mov       [rsp+28],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
vmovdqa   xmmword ptr [rsp+40],xmm4
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,175E8C00428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+40],xmm0
mov       [rsp+40],rcx
mov       rcx,1B676919078
mov       [rsp+48],rcx
lea       rcx,[rsp+40]
mov       [rsp+28],rcx
mov       dword ptr [rsp+30],2
mov       rcx,r8
lea       r8,[rsp+28]
mov       rdx,1B676927688
call      qword ptr [7FFF4C686C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       ebp,[rax+8]
test      ebp,ebp
je        short M00_L04
mov       r8,[rsi+8]
mov       r14d,[rsi+18]
lea       ecx,[r14+rbp]
cmp       ecx,[r8+8]
ja        short M00_L03
movsxd    rcx,r14d
lea       rcx,[r8+rcx*2+10]
cmp       ebp,2
jle       short M00_L02
movsxd    r8,ebp
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
add       ebp,r14d
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       ebp,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
mov       r8d,ebp
call      qword ptr [7FFF4C91CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C90EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+38],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+38]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,50
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0E1B52270C212
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C9170D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C9171E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0E1B52270C212
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C917318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8A66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF4C735B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C91CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C87E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C87E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1B676910008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,20A16800428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,24A98739078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,24A98747688
call      qword ptr [7FFF4C666C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8EEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,5E789A0A849D
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C8F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,5E789A0A849D
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8866E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
je        short M02_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L00
 
ret
M02_L01
 
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L06
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L03
jmp       short M02_L04
M02_L08
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L09
 
jmp       qword ptr [7FFF4C715B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M02_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C8FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C85E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C85E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,24A98730008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,203ED800428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,2447B859078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,2447B867688
call      qword ptr [7FFF4C686C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C91CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C90EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,5F309B7E2C
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C9170D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C9171E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,5F309B7E2C
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C917318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8A66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
je        short M02_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L00
 
ret
M02_L01
 
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L06
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L03
jmp       short M02_L04
M02_L08
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L09
 
jmp       qword ptr [7FFF4C735B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M02_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C91CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C87E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C87E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2447B850008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,162F0C00428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,1A382C59078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,1A382C67688
call      qword ptr [7FFF4C666C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8EEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0DA9A3D59BC76
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C8F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0DA9A3D59BC76
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8866E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L02
M02_L00
 
test      r8,r8
je        short M02_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L02
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L02
 
ret
M02_L03
 
cmp       r8,40
ja        short M02_L06
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L02
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L08
 
cmp       rcx,rdx
je        short M02_L02
M02_L09
 
jmp       qword ptr [7FFF4C715B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C8FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C85E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C85E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1A382C50008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,186A6800428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,1C7387E9078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,1C7387F76A8
call      qword ptr [7FFF4C666C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8EEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,5A81FF31410
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C8F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,5A81FF31410
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8866E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L02
M02_L00
 
test      r8,r8
je        short M02_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L02
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L02
 
ret
M02_L03
 
cmp       r8,40
ja        short M02_L06
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L02
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L08
 
cmp       rcx,rdx
je        short M02_L02
M02_L09
 
jmp       qword ptr [7FFF4C715B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C8FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C85E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C85E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1C7387E0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L06
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,1E381800428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,2240F789078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,2240F7976A8
call      qword ptr [7FFF4C666C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8EEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,27CD3C3CA83A
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C8F70D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8F71E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,27CD3C3CA83A
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C8F7318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8866E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF4C715B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C8FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C85E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C85E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,2240F780008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L07
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,17AE8000428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,1BB79EE9078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,1BB79EF76A8
call      qword ptr [7FFF4C676C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M00_L06
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
jmp       short M00_L01
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,3948BA4C317E
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C9070D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C9071E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,3948BA4C317E
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C907318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8966E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L02
test      r8b,18
je        short M02_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M02_L00
 
ret
M02_L01
 
test      r8b,4
je        short M02_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M02_L00
M02_L02
 
cmp       r8,40
ja        short M02_L06
M02_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L10
M02_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L05
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M02_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M02_L00
M02_L06
 
cmp       r8,800
ja        short M02_L09
mov       r9,r8
shr       r9,6
M02_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L07
and       r8,3F
cmp       r8,10
ja        short M02_L03
jmp       short M02_L04
M02_L08
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L09
 
jmp       qword ptr [7FFF4C725B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M02_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M02_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C90CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C86E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C86E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1BB79EE0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatStringComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,48
vzeroupper
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rsp+20],xmm4
vmovdqa   xmmword ptr [rsp+30],xmm4
xor       eax,eax
mov       [rsp+40],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       rcx,[rbx+290]
cmp       dword ptr [rcx+8],0
jle       near ptr M00_L05
M00_L00
 
mov       rcx,[rbx+290]
cmp       edi,[rcx+8]
jae       near ptr M00_L07
mov       r8d,edi
mov       rcx,[rcx+r8*8+10]
mov       r8,23876400428
mov       r8,[r8]
vxorps    xmm0,xmm0,xmm0
vmovdqu   xmmword ptr [rsp+38],xmm0
mov       [rsp+38],rcx
mov       rcx,279041D9078
mov       [rsp+40],rcx
lea       rcx,[rsp+38]
mov       [rsp+20],rcx
mov       dword ptr [rsp+28],2
mov       rcx,r8
lea       r8,[rsp+20]
mov       rdx,279041E76A8
call      qword ptr [7FFF4C686C88]; System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
test      rax,rax
je        short M00_L04
lea       rdx,[rax+0C]
mov       r8d,[rax+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M00_L06
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C91CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C90EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,48
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
jmp       short M00_L01
M00_L07
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.FormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
push      rbp
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+20]
xor       eax,eax
mov       [rbp+8],rax
vxorps    xmm4,xmm4,xmm4
vmovdqa   xmmword ptr [rbp+10],xmm4
mov       [rbp+20],rax
mov       rax,0BBD43104FBE8
mov       [rbp],rax
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rsi,rsi
je        near ptr M01_L03
test      [rsp],esp
sub       rsp,200
lea       rdx,[rsp+20]
xor       ecx,ecx
mov       [rbp+8],rcx
mov       [rbp+18],rdx
mov       dword ptr [rbp+20],100
mov       [rbp+10],ecx
mov       edx,[rsi+8]
mov       ecx,[rbx+8]
lea       edx,[rdx+rcx*8]
cmp       edx,[rbp+20]
ja        short M01_L02
M01_L00
 
lea       rcx,[rbp+8]
mov       rdx,rdi
mov       r8,rsi
mov       r9,rbx
call      qword ptr [7FFF4C9170D8]; System.Text.ValueStringBuilder.AppendFormatHelper(System.IFormatProvider, System.String, System.ReadOnlySpan`1)
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C9171E0]; System.Text.ValueStringBuilder.ToString()
mov       rcx,0BBD43104FBE8
cmp       [rbp],rcx
je        short M01_L01
call      CORINFO_HELP_FAIL_FAST
M01_L01
 
nop
lea       rsp,[rbp+28]
pop       rbx
pop       rsi
pop       rdi
pop       rbp
ret
M01_L02
 
sub       edx,[rbp+10]
lea       rcx,[rbp+8]
call      qword ptr [7FFF4C917318]
jmp       short M01_L00
M01_L03
 
mov       ecx,2F1
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rcx,rax
call      qword ptr [7FFF4C8A66E8]
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M02_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M02_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M02_L03
test      r8b,18
jne       short M02_L01
test      r8b,4
je        short M02_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M02_L00
 
ret
M02_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M02_L00
M02_L02
 
test      r8,r8
je        short M02_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M02_L06
jmp       short M02_L00
M02_L03
 
cmp       r8,40
ja        short M02_L07
M02_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M02_L11
M02_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M02_L00
M02_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M02_L00
M02_L07
 
cmp       r8,800
ja        short M02_L10
mov       r9,r8
shr       r9,6
M02_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M02_L08
and       r8,3F
cmp       r8,10
ja        short M02_L04
jmp       short M02_L05
M02_L09
 
cmp       rcx,rdx
je        near ptr M02_L00
M02_L10
 
jmp       qword ptr [7FFF4C735B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M02_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M02_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C91CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C87E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C87E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,279041D0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFF4D0A6040]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-58],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
cmp       dword ptr [rbx+8],0
je        near ptr M01_L13
mov       rcx,2D956408B08
mov       r14,[rcx]
mov       rcx,[r14+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r14+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r15,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r15],r15b
mov       rcx,r15
xor       edx,edx
call      qword ptr [7FFF4C8FC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-50],r15
mov       r13d,[rbx+8]
xor       r12d,r12d
test      r13d,r13d
jle       near ptr M01_L10
mov       r8d,[rbx+8]
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M01_L06
mov       r8,[r15+8]
mov       eax,[r15+18]
mov       [rbp-44],eax
lea       ecx,[rax+r14]
cmp       ecx,[r8+8]
ja        short M01_L05
movsxd    rcx,eax
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jg        short M01_L03
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       eax,r14d
add       eax,[rbp-44]
mov       [r15+18],eax
jmp       short M01_L06
M01_L05
 
mov       rcx,r15
mov       r8d,r14d
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r13d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,319E8451C14
mov       rcx,[r15+8]
mov       r8d,[r15+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r15+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r15
call      qword ptr [7FFF4C8FC3D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r15
mov       r8d,2
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r13d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r15
call      qword ptr [7FFF4C8EEB18]; System.Text.StringBuilder.ToString()
mov       [rbp-58],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-58]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,319E8450008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r14+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r14,2C
lock dec  dword ptr [r14]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r14+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r15,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,2D956408B08
mov       r14,[rcx]
mov       r15,[r14+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r15+18],rcx
jne       short M01_L17
mov       rbx,[rbp-50]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r15+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF4C8FC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-50]
mov       rcx,[r15+8]
call      qword ptr [r15+18]
test      eax,eax
mov       rbx,[rbp-50]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r14+20],0
jne       short M01_L19
lea       rcx,[r14+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r14+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r14+28]
jg        short M01_L20
mov       rcx,[r14+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r14,2C
lock dec  dword ptr [r14]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFF4D0B64F0]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-58],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
cmp       dword ptr [rbx+8],0
je        near ptr M01_L13
mov       rcx,1A4E380AB00
mov       r14,[rcx]
mov       rcx,[r14+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r14+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r15,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r15],r15b
mov       rcx,r15
xor       edx,edx
call      qword ptr [7FFF4C82D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-50],r15
mov       r13d,[rbx+8]
xor       r12d,r12d
test      r13d,r13d
jle       near ptr M01_L10
mov       r8d,[rbx+8]
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M01_L06
mov       r8,[r15+8]
mov       eax,[r15+18]
mov       [rbp-44],eax
lea       ecx,[rax+r14]
cmp       ecx,[r8+8]
ja        short M01_L05
movsxd    rcx,eax
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jg        short M01_L03
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       eax,r14d
add       eax,[rbp-44]
mov       [r15+18],eax
jmp       short M01_L06
M01_L05
 
mov       rcx,r15
mov       r8d,r14d
call      qword ptr [7FFF4C82D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r13d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,1E575841B34
mov       rcx,[r15+8]
mov       r8d,[r15+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r15+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r15
call      qword ptr [7FFF4C82D2D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r15
mov       r8d,2
call      qword ptr [7FFF4C82D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r13d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r15
call      qword ptr [7FFF4C8496D0]; System.Text.StringBuilder.ToString()
mov       [rbp-58],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-58]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,1E575840008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r14+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r14,2C
lock dec  dword ptr [r14]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r14+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r15,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1A4E380AB00
mov       r14,[rcx]
mov       r15,[r14+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r15+18],rcx
jne       short M01_L17
mov       rbx,[rbp-50]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r15+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF4C82D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-50]
mov       rcx,[r15+8]
call      qword ptr [r15+18]
test      eax,eax
mov       rbx,[rbp-50]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r14+20],0
jne       short M01_L19
lea       rcx,[r14+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r14+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r14+28]
jg        short M01_L20
mov       rcx,[r14+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r14,2C
lock dec  dword ptr [r14]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFF4D0964F0]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,1C6FA002B38
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF4C80D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C6F5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFF4C80D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,20783CA1B34
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFF4C80D2D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF4C80D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFF4C8296D0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,20783CA0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDBEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1C6FA002B38
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF4C80D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF4CDBEF28]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFF4D0D6370]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,22EF8C0AB00
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF4C84D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFF4C84D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,26F8AC31B34
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFF4C84D2D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF4C84D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFF4C8696D0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,26F8AC30008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDFEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,22EF8C0AB00
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF4C84D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF4CDFEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFF4D0A7AC8]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,198DC40AB00
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF4C81D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFF4C81D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,1D96E371B34
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFF4C81D2D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF4C81D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFF4C8396D0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,1D96E370008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,198DC40AB00
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF4C81D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFF4D0975A0]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,1FAA580AB00
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF4C80D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C6F5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFF4C80D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,23B33901B34
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFF4C80D2D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF4C80D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFF4C8296D0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,23B33900008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDBEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1FAA580AB00
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF4C80D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF4CDBEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFF4D0B75A0]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,14FE400AB00
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF4C82D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFF4C82D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,19075D81B34
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFF4C82D2D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF4C82D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFF4C8496D0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,19075D80008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,14FE400AB00
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF4C82D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatChar()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       ecx,2C
call      qword ptr [7FFF4D0C75A0]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(Char, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       edi,ecx
mov       rbx,rdx
mov       rsi,r8
test      rsi,rsi
je        near ptr M01_L13
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,1CBCC40AB00
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF4C83D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rsi+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFF4C83D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rbx],0
je        short M01_L07
mov       rdx,20C5E431B34
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
movzx     edx,di
mov       rcx,r13
call      qword ptr [7FFF4C83D2D8]; System.Text.StringBuilder.Append(Char)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF4C83D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFF4C8596D0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,20C5E430008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDEEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1CBCC40AB00
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF4C83D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF4CDEEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,283F00B9078
call      qword ptr [7FFF4D0B6388]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-58],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rsi,rcx
mov       rdi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
cmp       dword ptr [rbx+8],0
je        near ptr M01_L13
mov       rcx,283F00B9078
test      rsi,rsi
cmove     rsi,rcx
mov       rcx,2435E008B08
mov       r14,[rcx]
mov       rcx,[r14+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r14+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r15,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r15],r15b
mov       rcx,r15
xor       edx,edx
call      qword ptr [7FFF4C90C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-50],r15
mov       r13d,[rbx+8]
xor       r12d,r12d
test      r13d,r13d
jle       near ptr M01_L10
mov       r8d,[rbx+8]
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M01_L06
mov       r8,[r15+8]
mov       eax,[r15+18]
mov       [rbp-44],eax
lea       ecx,[rax+r14]
cmp       ecx,[r8+8]
ja        short M01_L05
movsxd    rcx,eax
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jg        short M01_L03
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       eax,r14d
add       eax,[rbp-44]
mov       [r15+18],eax
jmp       short M01_L06
M01_L05
 
mov       rcx,r15
mov       r8d,r14d
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r13d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rdi],0
je        short M01_L07
mov       rdx,283F00B1C14
mov       rcx,[r15+8]
mov       r8d,[r15+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r15+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r15
mov       rdx,rsi
call      qword ptr [7FFF4C90C2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r15
mov       r8d,2
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r13d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r15
call      qword ptr [7FFF4C8FEB18]; System.Text.StringBuilder.ToString()
mov       [rbp-58],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-58]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,283F00B0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r14+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r14,2C
lock dec  dword ptr [r14]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r14+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r15,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,2435E008B08
mov       r14,[rcx]
mov       r15,[r14+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r15+18],rcx
jne       short M01_L17
mov       rbx,[rbp-50]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r15+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF4C90C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-50]
mov       rcx,[r15+8]
call      qword ptr [r15+18]
test      eax,eax
mov       rbx,[rbp-50]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r14+20],0
jne       short M01_L19
lea       rcx,[r14+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r14+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r14+28]
jg        short M01_L20
mov       rcx,[r14+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r14,2C
lock dec  dword ptr [r14]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,21E0A469078
call      qword ptr [7FFF4D0D6058]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-58],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
cmp       dword ptr [rbx+8],0
je        near ptr M01_L13
mov       rcx,21E0A469078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,1DD7840AB00
mov       r14,[rcx]
mov       rcx,[r14+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r14+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r15,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r15],r15b
mov       rcx,r15
xor       edx,edx
call      qword ptr [7FFF4C84D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-50],r15
mov       r13d,[rbx+8]
xor       r12d,r12d
test      r13d,r13d
jle       near ptr M01_L10
mov       r8d,[rbx+8]
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M01_L06
mov       r8,[r15+8]
mov       eax,[r15+18]
mov       [rbp-44],eax
lea       ecx,[rax+r14]
cmp       ecx,[r8+8]
ja        short M01_L05
movsxd    rcx,eax
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jg        short M01_L03
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       eax,r14d
add       eax,[rbp-44]
mov       [r15+18],eax
jmp       short M01_L06
M01_L05
 
mov       rcx,r15
mov       r8d,r14d
call      qword ptr [7FFF4C84D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r13d
sub       ecx,1
jo        near ptr M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,21E0A461B34
mov       rcx,[r15+8]
mov       r8d,[r15+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
add       r8d,2
mov       [r15+18],r8d
jmp       short M01_L09
M01_L07
 
mov       rcx,r15
mov       rdx,rdi
call      qword ptr [7FFF4C84D1A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r15
mov       r8d,2
call      qword ptr [7FFF4C84D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r13d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r15
call      qword ptr [7FFF4C8696D0]; System.Text.StringBuilder.ToString()
mov       [rbp-58],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-58]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,21E0A460008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r14+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDFEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r14,2C
lock dec  dword ptr [r14]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r14+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r15,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1DD7840AB00
mov       r14,[rcx]
mov       r15,[r14+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r15+18],rcx
jne       short M01_L17
mov       rbx,[rbp-50]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r15+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF4C84D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-50]
mov       rcx,[r15+8]
call      qword ptr [r15+18]
test      eax,eax
mov       rbx,[rbp-50]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r14+20],0
jne       short M01_L19
lea       rcx,[r14+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r14+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r14+28]
jg        short M01_L20
mov       rcx,[r14+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF4CDFEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r14,2C
lock dec  dword ptr [r14]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,23F5BC59078
call      qword ptr [7FFF4D0D6058]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,23F5BC59078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,1FEC9C0AB00
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF4C84D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFF4C84D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,23F5BC51B34
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFF4C84D1A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF4C84D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFF4C8696D0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,23F5BC50008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDFEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,1FEC9C0AB00
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF4C84D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF4CDFEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,25824769078
call      qword ptr [7FFF4D0B6058]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,25824769078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,21792808B08
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF4C90C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,25824761C14
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFF4C90C2A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFF4C8FEB18]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,25824760008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEBF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,21792808B08
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF4C90C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEBC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,1DC15049078
call      qword ptr [7FFF4D0B7AE0]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,1DC15049078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,19B8B002B38
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF4C82D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFF4C82D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,1DC15041B34
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFF4C82D1A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF4C82D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFF4C8496D0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,1DC15040008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,19B8B002B38
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF4C82D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,2E512239078
call      qword ptr [7FFF4D0C7AE0]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L13
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L13
mov       rcx,2E512239078
test      rdi,rdi
cmove     rdi,rcx
mov       rcx,2A48040AB00
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L14
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L14
M01_L00
 
mov       r13,[rbp-40]
M01_L01
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF4C83D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L10
M01_L02
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L03
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L04
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L03
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L04
 
mov       [r13+18],r15d
jmp       short M01_L06
M01_L05
 
mov       rcx,r13
call      qword ptr [7FFF4C83D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L09
cmp       byte ptr [rsi],0
je        short M01_L07
mov       rdx,2E512231B34
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L08
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L09
M01_L07
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFF4C83D1A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L09
M01_L08
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF4C83D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L02
M01_L10
 
mov       rcx,r13
call      qword ptr [7FFF4C8596D0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L12
M01_L11
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L12
 
mov       rcx,rsp
call      M01_L16
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rax,2E512230008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDEEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L15
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L00
M01_L15
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L01
M01_L16
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,2A48040AB00
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L17
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L21
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF4C83D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L18
M01_L17
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L21
M01_L18
 
cmp       qword ptr [r15+20],0
jne       short M01_L19
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L21
M01_L19
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L20
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF4CDEEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L21
M01_L20
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L21
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,2E8B62F9078
call      qword ptr [7FFF4D0B7AE0]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rsi,rdx
mov       rbx,r8
test      rbx,rbx
je        near ptr M01_L14
mov       r14d,[rbx+8]
test      r14d,r14d
je        near ptr M01_L14
test      rdi,rdi
je        near ptr M01_L15
M01_L00
 
mov       rcx,2A824408B08
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L16
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L16
M01_L01
 
mov       r13,[rbp-40]
M01_L02
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF4C82D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L09
M01_L03
 
mov       r8d,r12d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L07
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L05
M01_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L05
 
mov       [r13+18],r15d
jmp       short M01_L07
M01_L06
 
mov       rcx,r13
call      qword ptr [7FFF4C82D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L07
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L11
cmp       r12d,ecx
jge       short M01_L08
cmp       byte ptr [rsi],0
je        short M01_L12
mov       rdx,2E8B62F1B34
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L10
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
M01_L08
 
add       r12d,1
jo        short M01_L11
cmp       r12d,r14d
jl        near ptr M01_L03
M01_L09
 
mov       rcx,r13
call      qword ptr [7FFF4C8496D0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L13
M01_L10
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF4C82D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L08
M01_L11
 
call      CORINFO_HELP_OVERFLOW
M01_L12
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFF4C82D1A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L08
M01_L13
 
mov       rcx,rsp
call      M01_L18
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rax,2E8B62F0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L15
 
mov       rdi,2E8B62F9078
jmp       near ptr M01_L00
M01_L16
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L17
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L01
M01_L17
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L02
M01_L18
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,2A824408B08
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L19
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L23
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF4C82D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L20
M01_L19
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L23
M01_L20
 
cmp       qword ptr [r15+20],0
jne       short M01_L21
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L23
M01_L21
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L22
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L23
M01_L22
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L23
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ConcatString()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       dword ptr [rsp+28],1
mov       r8,[rbx+290]
lea       rdx,[rsp+28]
mov       rcx,1DA07A39078
call      qword ptr [7FFF4D0B7AE0]; DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.Concat(System.String, Boolean ByRef, System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		delimiter ??= ControlChars.CommaSpace;
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			var itemCount = args.Length;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < itemCount; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < itemCount - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = addLineFeed ? sb.AppendLine() : sb.Append(delimiter);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+80]
xor       eax,eax
mov       [rbp-50],rax
mov       [rbp-40],rax
mov       [rbp-60],rsp
mov       rdi,rcx
mov       rbx,rdx
mov       rsi,r8
test      rsi,rsi
je        near ptr M01_L14
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M01_L14
test      rdi,rdi
je        near ptr M01_L15
M01_L00
 
mov       rcx,19977C08B08
mov       r15,[rcx]
mov       rcx,[r15+20]
mov       [rbp-40],rcx
cmp       qword ptr [rbp-40],0
je        near ptr M01_L16
lea       rcx,[r15+20]
mov       r8,[rbp-40]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-40]
jne       near ptr M01_L16
M01_L01
 
mov       r13,[rbp-40]
M01_L02
 
xor       ecx,ecx
mov       [rbp-40],rcx
cmp       [r13],r13b
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF4C82D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-48],r13
xor       r12d,r12d
test      r14d,r14d
jle       near ptr M01_L11
M01_L03
 
mov       r8d,r12d
mov       r8,[rsi+r8*8+10]
test      r8,r8
je        short M01_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L07
mov       rcx,[r13+8]
mov       eax,[r13+18]
lea       r15d,[rax+r8]
cmp       r15d,[rcx+8]
ja        short M01_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L04
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L05
M01_L04
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L05
 
mov       [r13+18],r15d
jmp       short M01_L07
M01_L06
 
mov       rcx,r13
call      qword ptr [7FFF4C82D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L07
 
mov       ecx,r14d
sub       ecx,1
jo        short M01_L12
cmp       r12d,ecx
jge       short M01_L10
cmp       byte ptr [rbx],0
je        short M01_L08
mov       rdx,1DA07A31B34
mov       rcx,[r13+8]
mov       r8d,[r13+18]
lea       eax,[r8+2]
cmp       [rcx+8],eax
jb        short M01_L09
movsxd    rdx,r8d
lea       rcx,[rcx+rdx*2+10]
mov       word ptr [rcx],0D
mov       word ptr [rcx+2],0A
mov       [r13+18],eax
jmp       short M01_L10
M01_L08
 
mov       rcx,r13
mov       rdx,rdi
call      qword ptr [7FFF4C82D1A0]; System.Text.StringBuilder.Append(System.String)
jmp       short M01_L10
M01_L09
 
mov       rcx,r13
mov       r8d,2
call      qword ptr [7FFF4C82D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L10
 
add       r12d,1
jo        short M01_L12
cmp       r12d,r14d
jl        near ptr M01_L03
M01_L11
 
mov       rcx,r13
call      qword ptr [7FFF4C8496D0]; System.Text.StringBuilder.ToString()
mov       [rbp-50],rax
jmp       short M01_L13
M01_L12
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L13
 
mov       rcx,rsp
call      M01_L18
nop
mov       rax,[rbp-50]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L14
 
mov       rax,1DA07A30008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L15
 
mov       rdi,1DA07A39078
jmp       near ptr M01_L00
M01_L16
 
mov       rcx,[r15+18]
lea       rdx,[rbp-40]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L17
add       r15,2C
lock dec  dword ptr [r15]
jmp       near ptr M01_L01
M01_L17
 
mov       rax,[r15+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r13,rax
jmp       near ptr M01_L02
M01_L18
 
push      rbp
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+80]
mov       rcx,19977C08B08
mov       r15,[rcx]
mov       r13,[r15+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r13+18],rcx
jne       short M01_L19
mov       rbx,[rbp-48]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r13+8]
cmp       ecx,[rdx+0C]
jg        short M01_L23
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF4C82D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L20
M01_L19
 
mov       rdx,[rbp-48]
mov       rcx,[r13+8]
call      qword ptr [r13+18]
test      eax,eax
mov       rbx,[rbp-48]
je        short M01_L23
M01_L20
 
cmp       qword ptr [r15+20],0
jne       short M01_L21
lea       rcx,[r15+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L23
M01_L21
 
lea       rcx,[r15+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[r15+28]
jg        short M01_L22
mov       rcx,[r15+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L23
M01_L22
 
add       r15,2C
lock dec  dword ptr [r15]
M01_L23
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFF4D0A64C0]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        short M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L05
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L14
jmp       short M01_L11
M01_L05
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L06
 
test      rcx,rcx
je        short M01_L10
lea       rdx,[rcx+0C]
mov       r13d,[rcx+8]
test      r13d,r13d
je        short M01_L10
mov       r8,[rbx+8]
mov       r12d,[rbx+18]
lea       ecx,[r12+r13]
cmp       ecx,[r8+8]
ja        short M01_L09
movsxd    rcx,r12d
lea       rcx,[r8+rcx*2+10]
cmp       r13d,2
jg        near ptr M01_L16
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r13d,2
je        short M01_L08
M01_L07
 
add       r13d,r12d
mov       [rbx+18],r13d
jmp       short M01_L10
M01_L08
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L07
M01_L09
 
mov       rcx,rbx
mov       r8d,r13d
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L10
 
inc       r15d
cmp       r14d,r15d
jle       short M01_L14
M01_L11
 
test      esi,esi
je        short M01_L13
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[rsi+r13]
cmp       ecx,[r8+8]
ja        short M01_L15
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L17
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        short M01_L18
M01_L12
 
add       r13d,esi
mov       [rbx+18],r13d
M01_L13
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L10
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       short M01_L19
jmp       near ptr M01_L06
M01_L14
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L15
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L13
M01_L16
 
movsxd    r8,r13d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L07
M01_L17
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L12
M01_L18
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L12
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L06
M01_L20
 
mov       ecx,6
call      qword ptr [7FFF4C85ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFF4D0864C0]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L21
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L22
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L07
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L23
M01_L00
 
test      rcx,rcx
je        near ptr M01_L07
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        near ptr M01_L07
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L06
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L07
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
test      rcx,rcx
je        near ptr M01_L12
jmp       short M01_L05
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C6F5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
lea       rdx,[rcx+0C]
mov       r13d,[rcx+8]
test      r13d,r13d
je        near ptr M01_L12
mov       r12,[rbx+8]
mov       eax,[rbx+18]
mov       [rsp+24],eax
lea       ecx,[rax+r13]
cmp       ecx,[r12+8]
ja        short M01_L11
jmp       near ptr M01_L16
M01_L06
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF4C8DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L07
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L19
M01_L08
 
test      esi,esi
je        short M01_L15
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[rsi+r13]
cmp       ecx,[r8+8]
ja        short M01_L14
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L13
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        short M01_L10
M01_L09
 
add       r13d,esi
mov       [rbx+18],r13d
jmp       short M01_L15
M01_L10
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L09
M01_L11
 
mov       rcx,rbx
mov       r8d,r13d
call      qword ptr [7FFF4C8DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        short M01_L08
jmp       short M01_L19
M01_L13
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C6F5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L14
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF4C8DCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L15
 
mov       eax,r15d
mov       rcx,[rbp+rax*8+10]
test      rcx,rcx
je        short M01_L12
mov       rax,offset MT_System.String
cmp       [rcx],rax
jne       near ptr M01_L24
jmp       near ptr M01_L03
M01_L16
 
movsxd    r8,eax
lea       rcx,[r12+r8*2+10]
cmp       r13d,2
jg        short M01_L18
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r13d,2
je        short M01_L20
M01_L17
 
add       r13d,[rsp+24]
mov       [rbx+18],r13d
jmp       short M01_L12
M01_L18
 
movsxd    r8,r13d
add       r8,r8
call      qword ptr [7FFF4C6F5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L17
M01_L19
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L20
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L17
M01_L21
 
mov       ecx,6
call      qword ptr [7FFF4C83ED00]
int       3
M01_L22
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L23
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L24
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L03
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFF4D0B64C0]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L05
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        short M01_L05
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L05
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L05
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L05
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L14
M01_L06
 
test      esi,esi
je        short M01_L08
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L17
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L15
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        near ptr M01_L18
M01_L07
 
mov       [rbx+18],r13d
M01_L08
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L13
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L09
 
test      rcx,rcx
je        short M01_L13
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L13
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L12
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L16
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M01_L11
M01_L10
 
mov       [rbx+18],r13d
jmp       short M01_L13
M01_L11
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L10
M01_L12
 
mov       rcx,rbx
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L13
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L06
M01_L14
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L15
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L07
M01_L16
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L10
M01_L17
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L08
M01_L18
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       near ptr M01_L07
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L09
M01_L20
 
mov       ecx,6
call      qword ptr [7FFF4C86ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFF4D0A6010]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L21
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L22
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L07
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L23
M01_L00
 
test      rcx,rcx
je        near ptr M01_L07
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L07
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L06
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L05
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L07
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
inc       r15d
cmp       r14d,r15d
jg        short M01_L08
jmp       near ptr M01_L19
M01_L05
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L06
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L07
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L19
M01_L08
 
test      esi,esi
je        near ptr M01_L15
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L14
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L12
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        short M01_L10
M01_L09
 
mov       [rbx+18],r13d
jmp       short M01_L15
M01_L10
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L09
M01_L11
 
test      rcx,rcx
je        near ptr M01_L04
jmp       short M01_L13
M01_L12
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L13
 
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        near ptr M01_L04
mov       r13,[rbx+8]
mov       r12d,[rbx+18]
lea       eax,[r12+r8]
mov       [rsp+24],eax
cmp       eax,[r13+8]
ja        near ptr M01_L03
jmp       short M01_L16
M01_L14
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L15
 
mov       eax,r15d
mov       rcx,[rbp+rax*8+10]
test      rcx,rcx
je        near ptr M01_L04
mov       rax,offset MT_System.String
cmp       [rcx],rax
jne       near ptr M01_L24
jmp       short M01_L11
M01_L16
 
movsxd    rcx,r12d
lea       rcx,[r13+rcx*2+10]
cmp       r8d,2
jg        short M01_L18
movzx     r10d,word ptr [rdx]
mov       [rcx],r10w
cmp       r8d,2
je        short M01_L20
M01_L17
 
mov       eax,[rsp+24]
mov       [rbx+18],eax
jmp       near ptr M01_L04
M01_L18
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L17
M01_L19
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L20
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L17
M01_L21
 
mov       ecx,6
call      qword ptr [7FFF4C85ED00]
int       3
M01_L22
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L23
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L24
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L11
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFF4D097570]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L05
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        short M01_L05
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L05
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L05
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L05
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L14
M01_L06
 
test      esi,esi
je        short M01_L08
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L17
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L15
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        near ptr M01_L18
M01_L07
 
mov       [rbx+18],r13d
M01_L08
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L13
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L09
 
test      rcx,rcx
je        short M01_L13
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L13
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L12
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L16
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M01_L11
M01_L10
 
mov       [rbx+18],r13d
jmp       short M01_L13
M01_L11
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L10
M01_L12
 
mov       rcx,rbx
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L13
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L06
M01_L14
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L15
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L07
M01_L16
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L10
M01_L17
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L08
M01_L18
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       near ptr M01_L07
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L09
M01_L20
 
mov       ecx,6
call      qword ptr [7FFF4C84ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFF4D0C7570]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L10
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        near ptr M01_L10
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        near ptr M01_L10
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L09
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        near ptr M01_L17
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       near ptr M01_L10
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
test      rcx,rcx
je        short M01_L07
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L07
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M01_L14
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M01_L05
M01_L04
 
mov       [rbx+18],r13d
jmp       short M01_L07
M01_L05
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L06
 
mov       rcx,rbx
call      qword ptr [7FFF4C91CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L07
 
inc       r15d
cmp       r14d,r15d
jg        short M01_L11
M01_L08
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L09
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF4C91CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L10
 
mov       r15d,1
cmp       r14d,1
jle       short M01_L08
M01_L11
 
test      esi,esi
je        short M01_L13
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L16
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L15
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        short M01_L18
M01_L12
 
mov       [rbx+18],r13d
M01_L13
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L07
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       short M01_L19
jmp       near ptr M01_L03
M01_L14
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L04
M01_L15
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L12
M01_L16
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF4C91CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L13
M01_L17
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L01
M01_L18
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L12
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L03
M01_L20
 
mov       ecx,6
call      qword ptr [7FFF4C87ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFF4D0A7570]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L21
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L22
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L08
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L23
M01_L00
 
test      rcx,rcx
je        near ptr M01_L08
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        near ptr M01_L08
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L04
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L08
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
test      rcx,rcx
je        short M01_L06
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L06
jmp       near ptr M01_L12
M01_L04
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
inc       r15d
cmp       r14d,r15d
jg        short M01_L09
jmp       near ptr M01_L19
M01_L07
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L08
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L19
M01_L09
 
test      esi,esi
je        short M01_L15
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L14
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L13
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        short M01_L11
M01_L10
 
mov       [rbx+18],r13d
jmp       short M01_L15
M01_L11
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L10
M01_L12
 
mov       r13,[rbx+8]
mov       r12d,[rbx+18]
lea       eax,[r12+r8]
mov       [rsp+24],eax
cmp       eax,[r13+8]
ja        near ptr M01_L05
jmp       short M01_L16
M01_L13
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L10
M01_L14
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L15
 
mov       eax,r15d
mov       rcx,[rbp+rax*8+10]
test      rcx,rcx
je        near ptr M01_L06
mov       rax,offset MT_System.String
cmp       [rcx],rax
jne       near ptr M01_L24
jmp       near ptr M01_L03
M01_L16
 
movsxd    rcx,r12d
lea       rcx,[r13+rcx*2+10]
cmp       r8d,2
jg        short M01_L18
movzx     r10d,word ptr [rdx]
mov       [rcx],r10w
cmp       r8d,2
je        short M01_L20
M01_L17
 
mov       r13d,[rsp+24]
mov       [rbx+18],r13d
jmp       near ptr M01_L06
M01_L18
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L17
M01_L19
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L20
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L17
M01_L21
 
mov       ecx,6
call      qword ptr [7FFF4C85ED00]
int       3
M01_L22
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L23
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L24
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L03
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinCharComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       dword ptr [rsp+30],2C
mov       r8,[rbx+290]
mov       [rsp+20],r8
lea       r8,[rsp+30]
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
mov       r9d,1
call      qword ptr [7FFF4D0B7A98]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L20
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L21
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L10
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L22
M01_L00
 
test      rcx,rcx
je        near ptr M01_L10
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        near ptr M01_L10
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L09
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        near ptr M01_L17
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
je        short M01_L02
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       near ptr M01_L10
M01_L02
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
test      rcx,rcx
je        short M01_L07
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L07
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        near ptr M01_L14
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
je        short M01_L05
M01_L04
 
mov       [rbx+18],r13d
jmp       short M01_L07
M01_L05
 
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L04
M01_L06
 
mov       rcx,rbx
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L07
 
inc       r15d
cmp       r14d,r15d
jg        short M01_L11
M01_L08
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L09
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L10
 
mov       r15d,1
cmp       r14d,1
jle       short M01_L08
M01_L11
 
test      esi,esi
je        short M01_L13
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L16
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L15
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
je        short M01_L18
M01_L12
 
mov       [rbx+18],r13d
M01_L13
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L07
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       short M01_L19
jmp       near ptr M01_L03
M01_L14
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L04
M01_L15
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L12
M01_L16
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L13
M01_L17
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L01
M01_L18
 
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L12
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L03
M01_L20
 
mov       ecx,6
call      qword ptr [7FFF4C86ED00]
int       3
M01_L21
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L22
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,21860C79084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFF4D0A64C0]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L17
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L18
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L05
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L00
 
test      rcx,rcx
je        near ptr M01_L05
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        near ptr M01_L05
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L04
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L05
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
test      rcx,rcx
je        near ptr M01_L10
lea       rdx,[rcx+0C]
mov       r13d,[rcx+8]
test      r13d,r13d
je        near ptr M01_L10
mov       r12,[rbx+8]
mov       eax,[rbx+18]
mov       [rsp+24],eax
lea       ecx,[rax+r13]
cmp       ecx,[r12+8]
ja        near ptr M01_L09
movsxd    r8,eax
lea       rcx,[r12+r8*2+10]
cmp       r13d,2
jg        near ptr M01_L13
jmp       near ptr M01_L16
M01_L04
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L05
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L12
M01_L06
 
test      esi,esi
je        short M01_L08
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[rsi+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L15
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L11
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L07
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L07
 
add       r13d,esi
mov       [rbx+18],r13d
M01_L08
 
mov       eax,r15d
mov       rcx,[rbp+rax*8+10]
test      rcx,rcx
je        short M01_L10
mov       rax,offset MT_System.String
cmp       [rcx],rax
jne       near ptr M01_L20
jmp       near ptr M01_L03
M01_L09
 
mov       rcx,rbx
mov       r8d,r13d
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L10
 
inc       r15d
cmp       r14d,r15d
jg        short M01_L06
jmp       short M01_L12
M01_L11
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L07
M01_L12
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L13
 
movsxd    r8,r13d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L14
 
add       r13d,[rsp+24]
mov       [rbx+18],r13d
jmp       short M01_L10
M01_L15
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L08
M01_L16
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r13d,2
jne       short M01_L14
movzx     edx,word ptr [rdx+2]
mov       [rcx+2],dx
jmp       short M01_L14
M01_L17
 
mov       ecx,6
call      qword ptr [7FFF4C85ED00]
int       3
M01_L18
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L20
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L03
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,2A643759084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFF4D0A6010]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+90]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L13
M01_L05
 
test      esi,esi
je        short M01_L07
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[rsi+r13]
cmp       ecx,[r8+8]
ja        near ptr M01_L14
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L10
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L06
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L06
 
add       r13d,esi
mov       [rbx+18],r13d
M01_L07
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        near ptr M01_L12
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L08
 
test      rcx,rcx
je        short M01_L12
lea       rdx,[rcx+0C]
mov       r13d,[rcx+8]
test      r13d,r13d
je        short M01_L12
mov       r8,[rbx+8]
mov       r12d,[rbx+18]
lea       ecx,[r12+r13]
cmp       ecx,[r8+8]
ja        short M01_L11
movsxd    rcx,r12d
lea       rcx,[r8+rcx*2+10]
cmp       r13d,2
jg        short M01_L15
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r13d,2
jne       short M01_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L09
 
add       r13d,r12d
mov       [rbx+18],r13d
jmp       short M01_L12
M01_L10
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L06
M01_L11
 
mov       rcx,rbx
mov       r8d,r13d
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
M01_L13
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L14
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L07
M01_L15
 
movsxd    r8,r13d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L16
 
mov       ecx,6
call      qword ptr [7FFF4C85ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L08
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,242F1BC9084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFF4D0C64C0]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF4C91CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L07
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L13
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L10
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L06
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L06
 
mov       [rbx+18],r13d
M01_L07
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        near ptr M01_L12
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L08
 
test      rcx,rcx
je        short M01_L12
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L12
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L11
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L14
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L09
 
mov       [rbx+18],r13d
jmp       short M01_L12
M01_L10
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L06
M01_L11
 
mov       rcx,rbx
call      qword ptr [7FFF4C91CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
jmp       short M01_L15
M01_L13
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF4C91CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L07
M01_L14
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFF4C87ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L08
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,22E24589084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFF4D0B6010]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L01
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L02
M01_L01
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L02
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L09
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L08
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L06
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L07
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L07
M01_L06
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L07
 
mov       [rbx+18],r13d
jmp       short M01_L09
M01_L08
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L14
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L10
 
test      rcx,rcx
je        short M01_L14
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L14
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L13
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L11
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L12
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L12
M01_L11
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L12
 
mov       [rbx+18],r13d
jmp       short M01_L14
M01_L13
 
mov       rcx,rbx
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L14
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFF4C86ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L10
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,1EBE6C79084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFF4D0A78A0]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L07
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L13
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L10
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L06
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L06
 
mov       [rbx+18],r13d
M01_L07
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        near ptr M01_L12
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L08
 
test      rcx,rcx
je        short M01_L12
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L12
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L11
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L14
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L09
 
mov       [rbx+18],r13d
jmp       short M01_L12
M01_L10
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L06
M01_L11
 
mov       rcx,rbx
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
jmp       short M01_L15
M01_L13
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L07
M01_L14
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFF4C85ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L08
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,20702CE9084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFF4D0A7570]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L07
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L13
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L10
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L06
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L06
 
mov       [rbx+18],r13d
M01_L07
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        near ptr M01_L12
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L08
 
test      rcx,rcx
je        short M01_L12
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L12
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L11
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L14
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L09
 
mov       [rbx+18],r13d
jmp       short M01_L12
M01_L10
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L06
M01_L11
 
mov       rcx,rbx
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
jmp       short M01_L15
M01_L13
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L07
M01_L14
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFF4C85ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L08
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,22B8F289084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFF4D0C7570]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L02
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L01
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L02
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF4C91CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L07
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        near ptr M01_L13
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        near ptr M01_L10
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L06
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
M01_L06
 
mov       [rbx+18],r13d
M01_L07
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        near ptr M01_L12
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L08
 
test      rcx,rcx
je        short M01_L12
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L12
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L11
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L14
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M01_L09
 
mov       [rbx+18],r13d
jmp       short M01_L12
M01_L10
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       near ptr M01_L06
M01_L11
 
mov       rcx,rbx
call      qword ptr [7FFF4C91CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L12
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
jmp       short M01_L15
M01_L13
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF4C91CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       near ptr M01_L07
M01_L14
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M01_L09
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFF4C87ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L08
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.JoinStringComparison()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       r8,[rbx+290]
mov       [rsp+20],r8
mov       r8,2713C399084
mov       r9d,2
mov       rcx,rsi
mov       rdx,offset MD_System.Text.StringBuilder.AppendJoinCore[[System.String, System.Private.CoreLib]](Char ByRef, Int32, System.String[])
call      qword ptr [7FFF4D097A98]; System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
mov       [rsp+30],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+30]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
 
System.Text.StringBuilder.AppendJoinCore[[System.__Canon, System.Private.CoreLib]](Char ByRef, Int32, System.__Canon[])
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rdi,r8
mov       esi,r9d
mov       rbp,[rsp+80]
test      rbp,rbp
je        near ptr M01_L16
mov       r14d,[rbp+8]
test      r14d,r14d
je        near ptr M01_L17
mov       rcx,[rbp+10]
test      rcx,rcx
je        near ptr M01_L04
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L18
M01_L00
 
test      rcx,rcx
je        short M01_L04
lea       rdx,[rcx+0C]
mov       r15d,[rcx+8]
test      r15d,r15d
je        short M01_L04
mov       r8,[rbx+8]
mov       r13d,[rbx+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M01_L03
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M01_L01
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M01_L02
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L02
M01_L01
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L02
 
add       r15d,r13d
mov       [rbx+18],r15d
jmp       short M01_L04
M01_L03
 
mov       rcx,rbx
mov       r8d,r15d
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
mov       r15d,1
cmp       r14d,1
jle       near ptr M01_L15
M01_L05
 
test      esi,esi
je        short M01_L09
mov       r8,[rbx+8]
mov       ecx,[rbx+18]
lea       r13d,[rcx+rsi]
cmp       r13d,[r8+8]
ja        short M01_L08
movsxd    rcx,ecx
lea       rcx,[r8+rcx*2+10]
cmp       esi,2
jg        short M01_L06
movzx     r8d,word ptr [rdi]
mov       [rcx],r8w
cmp       esi,2
jne       short M01_L07
movzx     r8d,word ptr [rdi+2]
mov       [rcx+2],r8w
jmp       short M01_L07
M01_L06
 
movsxd    r8,esi
add       r8,r8
mov       rdx,rdi
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L07
 
mov       [rbx+18],r13d
jmp       short M01_L09
M01_L08
 
mov       rcx,rbx
mov       rdx,rdi
mov       r8d,esi
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L09
 
mov       r8d,r15d
mov       rcx,[rbp+r8*8+10]
test      rcx,rcx
je        short M01_L14
mov       r8,offset MT_System.String
cmp       [rcx],r8
jne       near ptr M01_L19
M01_L10
 
test      rcx,rcx
je        short M01_L14
lea       rdx,[rcx+0C]
mov       r8d,[rcx+8]
test      r8d,r8d
je        short M01_L14
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       r13d,[rax+r8]
cmp       r13d,[rcx+8]
ja        short M01_L13
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jg        short M01_L11
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L12
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L12
M01_L11
 
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L12
 
mov       [rbx+18],r13d
jmp       short M01_L14
M01_L13
 
mov       rcx,rbx
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L14
 
inc       r15d
cmp       r14d,r15d
jg        near ptr M01_L05
M01_L15
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L16
 
mov       ecx,6
call      qword ptr [7FFF4C84ED00]
int       3
M01_L17
 
mov       rax,rbx
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M01_L18
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L00
M01_L19
 
mov       rax,[rcx]
mov       rax,[rax+40]
call      qword ptr [rax+8]
mov       rcx,rax
jmp       near ptr M01_L10
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M01_L02
M01_L00
 
test      r8,r8
je        short M01_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M01_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M01_L02
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M01_L02
 
ret
M01_L03
 
cmp       r8,40
ja        short M01_L06
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L10
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L02
M01_L06
 
cmp       r8,800
ja        short M01_L09
mov       r9,r8
shr       r9,6
M01_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L07
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L08
 
cmp       rcx,rdx
je        short M01_L02
M01_L09
 
jmp       qword ptr [7FFF4C725B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C90CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFF4C86E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFF4C86E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,1948C2D0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L02
test      r8b,18
je        short M01_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M01_L00
 
ret
M01_L01
 
test      r8b,4
je        short M01_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M01_L00
M01_L02
 
cmp       r8,40
ja        short M01_L06
M01_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L10
M01_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L05
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M01_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M01_L00
M01_L06
 
cmp       r8,800
ja        short M01_L09
mov       r9,r8
shr       r9,6
M01_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L07
and       r8,3F
cmp       r8,10
ja        short M01_L03
jmp       short M01_L04
M01_L08
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L09
 
jmp       qword ptr [7FFF4C725B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M01_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M01_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C90CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFF4C86E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFF4C86E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2D5E9F00008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8DEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M01_L02
M01_L00
 
test      r8,r8
je        short M01_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M01_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M01_L02
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M01_L02
 
ret
M01_L03
 
cmp       r8,40
ja        short M01_L06
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L10
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L02
M01_L06
 
cmp       r8,800
ja        short M01_L09
mov       r9,r8
shr       r9,6
M01_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L07
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L08
 
cmp       rcx,rdx
je        short M01_L02
M01_L09
 
jmp       qword ptr [7FFF4C705B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C8ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFF4C84E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFF4C84E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,1AF2E1E0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8DEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M01_L02
M01_L00
 
test      r8,r8
je        short M01_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M01_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M01_L02
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M01_L02
 
ret
M01_L03
 
cmp       r8,40
ja        short M01_L06
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L10
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L02
M01_L06
 
cmp       r8,800
ja        short M01_L09
mov       r9,r8
shr       r9,6
M01_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L07
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L08
 
cmp       rcx,rdx
je        short M01_L02
M01_L09
 
jmp       qword ptr [7FFF4C705B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C8ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFF4C84E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFF4C84E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,19E5B960008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8DEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M01_L02
M01_L00
 
test      r8,r8
je        short M01_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M01_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M01_L02
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M01_L02
 
ret
M01_L03
 
cmp       r8,40
ja        short M01_L06
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L10
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L02
M01_L06
 
cmp       r8,800
ja        short M01_L09
mov       r9,r8
shr       r9,6
M01_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L07
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L08
 
cmp       rcx,rdx
je        short M01_L02
M01_L09
 
jmp       qword ptr [7FFF4C705B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C8ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFF4C84E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFF4C84E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2B73F070008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L02
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
cmp       r8,40
ja        short M01_L06
M01_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L10
M01_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L05
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M01_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M01_L00
M01_L06
 
cmp       r8,800
ja        short M01_L09
mov       r9,r8
shr       r9,6
M01_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L07
and       r8,3F
cmp       r8,10
ja        short M01_L03
jmp       short M01_L04
M01_L08
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L09
 
jmp       qword ptr [7FFF4C725B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M01_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M01_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C90CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFF4C86E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFF4C86E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,25B7D8E0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8EEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FFF4C715B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C8FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFF4C85E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFF4C85E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,169CBCA0008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionComparison()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
xor       edi,edi
mov       r8,[rbx+290]
cmp       dword ptr [r8+8],0
jle       near ptr M00_L05
M00_L00
 
mov       r8,[rbx+290]
cmp       edi,[r8+8]
jae       near ptr M00_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M00_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M00_L04
mov       rcx,[rsi+8]
mov       eax,[rsi+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M00_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M00_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L01
 
mov       [rsi+18],ebp
jmp       short M00_L04
M00_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M00_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L01
M00_L03
 
mov       rcx,rsi
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
inc       edi
mov       rcx,[rbx+290]
cmp       [rcx+8],edi
jg        near ptr M00_L00
M00_L05
 
mov       rcx,rsi
call      qword ptr [7FFF4C8DEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M01_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M01_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M01_L03
test      r8b,18
jne       short M01_L01
test      r8b,4
je        short M01_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M01_L00
 
ret
M01_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M01_L00
M01_L02
 
test      r8,r8
je        short M01_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M01_L06
jmp       short M01_L00
M01_L03
 
cmp       r8,40
ja        short M01_L07
M01_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M01_L11
M01_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M01_L00
M01_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M01_L00
M01_L07
 
cmp       r8,800
ja        short M01_L10
mov       r9,r8
shr       r9,6
M01_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M01_L08
and       r8,3F
cmp       r8,10
ja        short M01_L04
jmp       short M01_L05
M01_L09
 
cmp       rcx,rdx
je        near ptr M01_L00
M01_L10
 
jmp       qword ptr [7FFF4C705B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M01_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M01_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M02_L03
cmp       r8d,edi
jl        near ptr M02_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M02_L01
test      r8,r8
je        near ptr M02_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M02_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M02_L00
 
cmp       ebp,r10d
ja        near ptr M02_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M02_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C8ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M02_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M02_L07
M02_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M02_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M02_L04
 
test      eax,eax
jne       short M02_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M02_L00
M02_L05
 
call      qword ptr [7FFF4C84E9D0]
int       3
M02_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M02_L02
M02_L07
 
call      qword ptr [7FFF4C84E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M03_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M03_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M03_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M03_L02
cmp       [rdx+8],r8d
jb        short M03_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M03_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M03_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L03
 
mov       rax,2CD0EB10008
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,184CF808160
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFF4CDCE560]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFF4D096568]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFF4CDBE9A0]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFF4C6541F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDBEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L05
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
jmp       short M02_L04
M02_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L03
 
mov       rcx,rbx
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M02_L00
M02_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,184CF808B08
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-30]
M03_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C8EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L07
lea       rdx,[r8+0C]
mov       r14d,[r8+8]
test      r14d,r14d
je        short M03_L07
mov       r8,[rdi+8]
mov       r15d,[rdi+18]
lea       ecx,[r15+r14]
cmp       ecx,[r8+8]
ja        short M03_L06
movsxd    rcx,r15d
lea       rcx,[r8+rcx*2+10]
cmp       r14d,2
jle       short M03_L05
movsxd    r8,r14d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
add       r14d,r15d
mov       [rdi+18],r14d
jmp       short M03_L07
M03_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L05
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r14d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L06
 
mov       rcx,rdi
mov       r8d,r14d
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M03_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M03_L02
jmp       short M03_L09
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFF4C8DEB18]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M03_L10
 
mov       rax,1C5617F0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDBEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,184CF808B08
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-38]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C8EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-38]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDBEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFF4C8EC1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDBEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,1FDD0008160
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFF4CDDE4E8]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFF4D0A6568]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFF4CDCEE08]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFF4C6641F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCF378]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M02_L03
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
M02_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M02_L00
M02_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L05
 
mov       rcx,rbx
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L02
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,1FDD0008B08
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C8FC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
M03_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M03_L02
jmp       short M03_L09
M03_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L07
 
mov       rcx,rdi
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M03_L04
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFF4C8EEB18]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,23E5E050008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCF378]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1FDD0008B08
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C8FC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCF348]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFF4C8FC1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCF348]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,19BBD008160
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFF4CDEE560]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFF4D0B6568]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFF4CDDE9A0]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFF4C6741F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L05
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
jmp       short M02_L04
M02_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L03
 
mov       rcx,rbx
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M02_L00
M02_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,19BBD008B08
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C90C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
jmp       short M03_L07
M03_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L06
 
mov       rcx,rdi
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M03_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M03_L02
jmp       short M03_L09
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFF4C8FEB18]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,1DC4B000008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,19BBD008B08
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C90C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFF4C90C1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,1B878C08160
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFF4CDFE560]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFF4D0C6568]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFF4CDEE9A0]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFF4C6841F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDEEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L05
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
jmp       short M02_L04
M02_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L03
 
mov       rcx,rbx
call      qword ptr [7FFF4C91CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M02_L00
M02_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,1B878C08B08
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C91C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
jmp       short M03_L07
M03_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L06
 
mov       rcx,rdi
call      qword ptr [7FFF4C91CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M03_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M03_L02
jmp       short M03_L09
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFF4C90EB18]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,1F90AA80008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDEEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1B878C08B08
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C91C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDEEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFF4C91C1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDEEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,23909C08160
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFF4CDDE4D0]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFF4D0A7B40]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFF4CDCE9A0]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFF4C6641F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L05
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
jmp       short M02_L04
M02_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L03
 
mov       rcx,rbx
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M02_L00
M02_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,23909C08B08
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C8FC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
jmp       short M03_L07
M03_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L06
 
mov       rcx,rdi
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M03_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M03_L02
jmp       short M03_L09
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFF4C8EEB18]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,2799BC20008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,23909C08B08
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C8FC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFF4C8FC1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,18D71808160
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFF4CDCE418]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFF4D097618]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFF4CDBEE08]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFF4C6541F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDBF378]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L05
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
jmp       short M02_L04
M02_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L03
 
mov       rcx,rbx
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M02_L00
M02_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,18D71808B08
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C8EC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
jmp       short M03_L07
M03_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L06
 
mov       rcx,rdi
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M03_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M03_L02
jmp       short M03_L09
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFF4C8DEB18]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,1CE03500008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDBF378]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,18D71808B08
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C8EC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDBF348]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFF4C8EC1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDBF348]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,23D44008160
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFF4CDEE560]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFF4D0B7B40]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFF4CDDE9A0]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFF4C6741F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M02_L03
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
M02_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M02_L00
M02_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L05
 
mov       rcx,rbx
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L02
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,23D44008B08
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C90C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
M03_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M03_L02
jmp       short M03_L09
M03_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L07
 
mov       rcx,rdi
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M03_L04
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFF4C8FEB18]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,27DD6040008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,23D44008B08
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C90C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFF4C90C1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformActionStringBuilderPool()
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,25C6B808160
mov       rsi,[rcx]
mov       rcx,rsi
call      qword ptr [7FFF4CDDE560]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
mov       rdi,rax
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rbp,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rbp+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
mov       [rbp+18],rcx
mov       [rsp+30],rbp
lea       rcx,[rsp+30]
call      qword ptr [7FFF4D0A7B40]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       rbp,rax
mov       rcx,rsi
mov       rdx,rdi
call      qword ptr [7FFF4CDCE688]; Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
mov       [rsp+28],rbp
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M00_L00
 
call      qword ptr [7FFF4C6641F8]
int       3
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].Get()
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rcx,[rbx+20]
mov       [rsp+20],rcx
cmp       qword ptr [rsp+20],0
je        short M01_L01
lea       rcx,[rbx+20]
mov       r8,[rbx]
mov       r8,[r8+30]
mov       r8,[r8+8]
cmp       qword ptr [r8+8],30
jle       short M01_L00
M01_L00
 
mov       r8,[rsp+20]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rsp+20]
jne       short M01_L01
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L01
 
mov       rcx,[rbx+18]
lea       rdx,[rsp+20]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCEBF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L02
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
mov       rax,[rsp+20]
add       rsp,30
pop       rbx
ret
M01_L02
 
mov       rax,[rbx+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
nop
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L05
M02_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M02_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M02_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L01
 
mov       [rbx+18],ebp
jmp       short M02_L04
M02_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L01
M02_L03
 
mov       rcx,rbx
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M02_L00
M02_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M02_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M03_L10
mov       rcx,25C6B808B08
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M03_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M03_L11
M03_L00
 
mov       rdi,[rbp-28]
M03_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C8FC1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|20_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M03_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M03_L09
M03_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M03_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M03_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M03_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M03_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M03_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L03
 
mov       [rdi+18],r14d
jmp       short M03_L07
M03_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M03_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M03_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M03_L03
M03_L06
 
mov       rcx,rdi
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M03_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M03_L02
jmp       short M03_L09
M03_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M03_L09
 
mov       rcx,rdi
call      qword ptr [7FFF4C8EEB18]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M03_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L10
 
mov       rax,29CFD580008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M03_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCEBF8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M03_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M03_L00
M03_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M03_L01
M03_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,25C6B808B08
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M03_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M03_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C8FC1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M03_L15
M03_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M03_L18
M03_L15
 
cmp       qword ptr [rbx+20],0
jne       short M03_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M03_L18
M03_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M03_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCEBC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M03_L18
M03_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M03_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 
Microsoft.Extensions.ObjectPool.DefaultObjectPool`1[[System.__Canon, System.Private.CoreLib]].ReturnCore(System.__Canon)
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       [rsp+28],rcx
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rdi+18],rcx
jne       short M04_L03
mov       rcx,[rsi+8]
mov       ecx,[rcx+8]
add       ecx,[rsi+1C]
mov       rdx,[rdi+8]
cmp       ecx,[rdx+0C]
jg        short M04_L04
mov       rcx,rsi
xor       edx,edx
call      qword ptr [7FFF4C8FC1F8]; System.Text.StringBuilder.set_Length(Int32)
M04_L00
 
cmp       qword ptr [rbx+20],0
jne       short M04_L05
lea       rcx,[rbx+20]
mov       rdx,[rbx]
mov       rdx,[rdx+30]
mov       rdx,[rdx+8]
cmp       qword ptr [rdx+8],30
jle       short M04_L01
M04_L01
 
mov       rdx,rsi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
jne       short M04_L05
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L02
 
lea       rax,[rbx+2C]
lock dec  dword ptr [rax]
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L03
 
mov       rdx,rsi
mov       rcx,[rdi+8]
call      qword ptr [rdi+18]
test      eax,eax
jne       short M04_L00
M04_L04
 
xor       eax,eax
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
M04_L05
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M04_L02
mov       rcx,[rbx+18]
mov       rdx,rsi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCEBC8]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
mov       eax,1
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L04
M00_L00
 
mov       ecx,[rsi+1C]
add       ecx,[rsi+18]
test      ecx,ecx
jle       short M00_L01
mov       ecx,[rsi+18]
mov       rdx,[rsi+8]
cmp       [rdx+8],ecx
ja        near ptr M00_L09
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFF4C91C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L01
 
mov       rcx,r15
mov       r8,r13
mov       rdx,1AD9AD60210
call      qword ptr [7FFF4C686B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+38]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L02
 
cmp       qword ptr [rax+8],0
jne       short M00_L03
mov       r8,16D08C00438
cmp       qword ptr [r8],0
jne       short M00_L03
mov       r8,16D08C00418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L03
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L04
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
jbe       near ptr M00_L07
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFF4C91CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L04
 
cmp       ebp,[rdi+44]
jne       near ptr M00_L11
M00_L05
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L06
mov       rcx,rsi
call      qword ptr [7FFF4C90EB18]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L06
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       near ptr M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L05
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L07
 
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jg        short M00_L10
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L08
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
M00_L08
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       near ptr M00_L04
M00_L09
 
mov       ecx,ecx
mov       word ptr [rdx+rcx*2+10],2C
inc       dword ptr [rsi+18]
jmp       near ptr M00_L01
M00_L10
 
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
jmp       short M00_L08
M00_L11
 
call      qword ptr [7FFF4C87EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L02
M00_L13
 
call      qword ptr [7FFF4C824030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L03
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFF4C91CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C686B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFF4C87EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C686B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C686B08]; System.String.Concat(System.String, System.String)
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C91CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C87E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C87E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C534000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBCF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C73D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,1AD9AD60008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M05_L02
M05_L00
 
test      r8,r8
je        short M05_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M05_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M05_L02
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M05_L02
 
ret
M05_L03
 
cmp       r8,40
ja        short M05_L06
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L10
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L02
M05_L06
 
cmp       r8,800
ja        short M05_L09
mov       r9,r8
shr       r9,6
M05_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L07
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L08
 
cmp       rcx,rdx
je        short M05_L02
M05_L09
 
jmp       qword ptr [7FFF4C735B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFFAC0041F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFFAC017B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFFAC018B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L05
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFF4C90C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,24A7F6C0210
call      qword ptr [7FFF4C676B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+30]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,209F1800438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,209F1800418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L05
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
jbe       near ptr M00_L08
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L05
 
cmp       ebp,[rdi+44]
jne       near ptr M00_L11
M00_L06
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L07
mov       rcx,rsi
call      qword ptr [7FFF4C8FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L07
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       near ptr M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L06
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L08
 
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L10
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L09
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       near ptr M00_L05
M00_L10
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L09
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L09
M00_L11
 
call      qword ptr [7FFF4C86EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFF4C814030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFF4C90CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C676B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFF4C86EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C676B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C676B08]; System.String.Concat(System.String, System.String)
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M03_L03
cmp       r8d,edi
jl        near ptr M03_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M03_L01
test      r8,r8
je        near ptr M03_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M03_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M03_L00
 
cmp       ebp,r10d
ja        near ptr M03_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M03_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C90CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M03_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M03_L07
M03_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M03_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M03_L04
 
test      eax,eax
jne       short M03_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M03_L00
M03_L05
 
call      qword ptr [7FFF4C86E9D0]
int       3
M03_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M03_L02
M03_L07
 
call      qword ptr [7FFF4C86E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M04_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M04_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M04_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M04_L02
cmp       [rdx+8],r8d
jb        short M04_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M04_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M04_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M04_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L03
 
mov       rax,24A7F6C0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M05_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M05_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M05_L03
test      r8b,18
jne       short M05_L01
test      r8b,4
je        short M05_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M05_L02
M05_L00
 
test      r8,r8
je        short M05_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M05_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M05_L02
M05_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M05_L02
 
ret
M05_L03
 
cmp       r8,40
ja        short M05_L06
M05_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M05_L10
M05_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M05_L02
M05_L06
 
cmp       r8,800
ja        short M05_L09
mov       r9,r8
shr       r9,6
M05_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M05_L07
and       r8,3F
cmp       r8,10
ja        short M05_L04
jmp       short M05_L05
M05_L08
 
cmp       rcx,rdx
je        short M05_L02
M05_L09
 
jmp       qword ptr [7FFF4C725B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M05_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M05_L05
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFFAC0041F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFFAC017B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFFAC018B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFF4C8EC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,2A6D3220210
call      qword ptr [7FFF4C656B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+38]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,26645400438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,26645400418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFF4C8DEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFF4C84EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFF4C7F4030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFF4C8ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C656B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFF4C84EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C656B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C656B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L02
test      r8b,18
je        short M03_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M03_L00
 
ret
M03_L01
 
test      r8b,4
je        short M03_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M03_L00
M03_L02
 
cmp       r8,40
ja        short M03_L06
M03_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L10
M03_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L05
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M03_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M03_L00
M03_L06
 
cmp       r8,800
ja        short M03_L09
mov       r9,r8
shr       r9,6
M03_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L07
and       r8,3F
cmp       r8,10
ja        short M03_L03
jmp       short M03_L04
M03_L08
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L09
 
jmp       qword ptr [7FFF4C705B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M03_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M03_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C8ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFF4C84E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFF4C84E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,2A6D3220008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFFAC0041F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFFAC017B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFFAC018B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFF4C8EC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,26AA9E70210
call      qword ptr [7FFF4C656B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+38]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,22A1C000438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,22A1C000418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFF4C8ECA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFF4C8DEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFF4C84EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFF4C7F4030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFF4C8ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C656B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFF4C84EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C656B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C656B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFF4C705B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C8ECB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFF4C84E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFF4C84E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C504000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CB9F5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C70D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,26AA9E70008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFFAC0041F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFFAC017B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFFAC018B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFF4C8FC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,238233D0210
call      qword ptr [7FFF4C666B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+40]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,1F791400438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,1F791400418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFF4C8EEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFF4C85EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFF4C804030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFF4C8FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C666B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFF4C85EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C666B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C666B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L02
test      r8b,18
je        short M03_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M03_L00
 
ret
M03_L01
 
test      r8b,4
je        short M03_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M03_L00
M03_L02
 
cmp       r8,40
ja        short M03_L06
M03_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L10
M03_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L05
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M03_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M03_L00
M03_L06
 
cmp       r8,800
ja        short M03_L09
mov       r9,r8
shr       r9,6
M03_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L07
and       r8,3F
cmp       r8,10
ja        short M03_L03
jmp       short M03_L04
M03_L08
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L09
 
jmp       qword ptr [7FFF4C715B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M03_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M03_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C8FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFF4C85E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFF4C85E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,238233D0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFFAC0041F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFFAC017B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFFAC018B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFF4C90C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,286287B0210
call      qword ptr [7FFF4C676B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+30]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,24596800438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,24596800418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFF4C8FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFF4C86EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFF4C814030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFF4C90CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C676B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFF4C86EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C676B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C676B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L00
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M03_L02
M03_L00
 
test      r8,r8
je        short M03_L02
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M03_L02
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M03_L02
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M03_L02
 
ret
M03_L03
 
cmp       r8,40
ja        short M03_L06
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L10
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L02
M03_L06
 
cmp       r8,800
ja        short M03_L09
mov       r9,r8
shr       r9,6
M03_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L07
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L08
 
cmp       rcx,rdx
je        short M03_L02
M03_L09
 
jmp       qword ptr [7FFF4C725B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C90CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFF4C86E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFF4C86E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,286287B0008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFFAC0041F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFFAC017B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFFAC018B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFF4C90C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,28264E00210
call      qword ptr [7FFF4C676B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+30]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,241D7000438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,241D7000418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r15d,[r15+8]
test      r15d,r15d
je        short M00_L08
mov       r8,[rsi+8]
mov       r13d,[rsi+18]
lea       ecx,[r15+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       r15d,2
jle       short M00_L06
movsxd    r8,r15d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r15d,r13d
mov       [rsi+18],r15d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r15d,2
jne       short M00_L05
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r15d
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFF4C8FEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [rbx+8],rcx
add       rsp,30
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L14
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFF4C86EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFF4C814030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFF4C90CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C676B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFF4C86EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C676B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C676B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L09
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L09
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L03
test      r8b,18
jne       short M03_L01
test      r8b,4
je        short M03_L02
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
M03_L00
 
ret
M03_L01
 
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
jmp       short M03_L00
M03_L02
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
jne       short M03_L06
jmp       short M03_L00
M03_L03
 
cmp       r8,40
ja        short M03_L07
M03_L04
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L11
M03_L05
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L06
 
movsx     r8,word ptr [rax-2]
mov       [r10-2],r8w
jmp       short M03_L00
M03_L07
 
cmp       r8,800
ja        short M03_L10
mov       r9,r8
shr       r9,6
M03_L08
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L08
and       r8,3F
cmp       r8,10
ja        short M03_L04
jmp       short M03_L05
M03_L09
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L10
 
jmp       qword ptr [7FFF4C725B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L11
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       short M03_L05
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       short M03_L05
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C90CB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFF4C86E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFF4C86E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C524000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBBF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C72D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,28264E00008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFFAC0041F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFFAC017B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFFAC018B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.ToDelimitedStringComparison()
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
xor       eax,eax
mov       [rsp+20],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Text.StringBuilder
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
mov       dword ptr [rsi+20],7FFFFFFF
mov       rcx,offset MT_System.Char[]
mov       edx,10
call      CORINFO_HELP_NEWARR_1_VC
lea       rcx,[rsi+8]
mov       rdx,rax
call      CORINFO_HELP_ASSIGN_REF
mov       rdi,[rbx+288]
mov       ebp,[rdi+44]
xor       r14d,r14d
jmp       near ptr M00_L08
M00_L00
 
mov       ecx,[rsi+1C]
mov       edx,[rsi+18]
add       ecx,edx
test      ecx,ecx
jle       short M00_L02
mov       ecx,edx
mov       rax,[rsi+8]
cmp       [rax+8],ecx
jbe       short M00_L01
mov       ecx,ecx
mov       word ptr [rax+rcx*2+10],2C
inc       edx
mov       [rsi+18],edx
jmp       short M00_L02
M00_L01
 
mov       rcx,rsi
mov       edx,2C
call      qword ptr [7FFF4C8FC3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M00_L02
 
mov       rcx,r15
mov       r8,r13
mov       rdx,213CDA20210
call      qword ptr [7FFF4C666B20]; System.String.Concat(System.String, System.String, System.String)
mov       r15,rax
mov       r8,gs:[58]
mov       r8,[r8+40]
cmp       dword ptr [r8+190],4
jl        near ptr M00_L12
mov       r8,[r8+198]
mov       r8,[r8+20]
test      r8,r8
je        near ptr M00_L12
mov       rax,[r8]
add       rax,10
M00_L03
 
cmp       qword ptr [rax+8],0
jne       short M00_L04
mov       r8,1D33BC00438
cmp       qword ptr [r8],0
jne       short M00_L04
mov       r8,1D33BC00418
cmp       qword ptr [r8],0
je        near ptr M00_L13
M00_L04
 
cmp       [r15],r15b
lea       rdx,[r15+0C]
mov       r13d,[r15+8]
test      r13d,r13d
je        short M00_L08
mov       r8,[rsi+8]
mov       r12d,[rsi+18]
lea       ecx,[r12+r13]
cmp       ecx,[r8+8]
ja        short M00_L07
movsxd    rcx,r12d
lea       rcx,[r8+rcx*2+10]
cmp       r13d,2
jle       short M00_L06
movsxd    r8,r13d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M00_L05
 
add       r13d,r12d
mov       [rsi+18],r13d
jmp       short M00_L08
M00_L06
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       r13d,2
je        near ptr M00_L14
jmp       short M00_L05
M00_L07
 
mov       rcx,rsi
mov       r8d,r13d
call      qword ptr [7FFF4C8FCA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M00_L08
 
cmp       ebp,[rdi+44]
jne       short M00_L11
M00_L09
 
mov       ecx,[rdi+38]
cmp       r14d,ecx
jb        short M00_L10
mov       rcx,rsi
call      qword ptr [7FFF4C8EEB18]; System.Text.StringBuilder.ToString()
mov       [rsp+20],rax
mov       r13,[rbx+18]
mov       rdx,[rsp+20]
lea       rcx,[r13+8]
call      CORINFO_HELP_ASSIGN_REF
xor       ecx,ecx
mov       [r13+8],rcx
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M00_L10
 
mov       rcx,[rdi+10]
lea       edx,[r14+1]
mov       r15d,edx
cmp       r14d,[rcx+8]
jae       short M00_L15
mov       edx,r14d
lea       rdx,[rdx+rdx*2]
lea       rcx,[rcx+rdx*8+10]
cmp       dword ptr [rcx+14],0FFFFFFFF
mov       r14d,r15d
jl        short M00_L09
mov       r15,[rcx]
mov       r13,[rcx+8]
jmp       near ptr M00_L00
M00_L11
 
call      qword ptr [7FFF4C85EFE8]
int       3
M00_L12
 
mov       ecx,4
call      CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED
jmp       near ptr M00_L03
M00_L13
 
call      qword ptr [7FFF4C804030]; System.Globalization.CultureInfo.InitializeUserDefaultCulture()
jmp       near ptr M00_L04
M00_L14
 
movzx     eax,word ptr [rdx+2]
mov       [rcx+2],ax
jmp       near ptr M00_L05
M00_L15
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.Text.StringBuilder.AppendWithExpansion(Char)
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       esi,edx
mov       rcx,rbx
mov       edx,1
call      qword ptr [7FFF4C8FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
mov       rax,[rbx+8]
cmp       dword ptr [rax+8],0
jbe       short M01_L00
mov       [rax+10],si
inc       dword ptr [rbx+18]
add       rsp,28
pop       rbx
pop       rsi
ret
M01_L00
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
System.String.Concat(System.String, System.String, System.String)
push      r15
push      r14
push      r13
push      r12
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       rsi,rdx
mov       rdi,r8
test      rbx,rbx
je        near ptr M02_L02
mov       ebp,[rbx+8]
test      ebp,ebp
je        near ptr M02_L02
test      rsi,rsi
je        near ptr M02_L03
mov       r14d,[rsi+8]
test      r14d,r14d
je        near ptr M02_L03
test      rdi,rdi
je        near ptr M02_L00
mov       r15d,[rdi+8]
test      r15d,r15d
je        near ptr M02_L00
mov       r13d,ebp
mov       ecx,r14d
add       rcx,r13
mov       eax,r15d
add       rcx,rax
cmp       rcx,7FFFFFFF
jg        near ptr M02_L01
call      System.String.FastAllocateString(Int32)
mov       r12,rax
cmp       [r12],r12b
lea       rax,[r12+0C]
mov       [rsp+20],rax
mov       rcx,rax
lea       rdx,[rbx+0C]
mov       r8d,ebp
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rbx,[rsp+20]
lea       rcx,[rbx+r13*2]
lea       rdx,[rsi+0C]
mov       r8d,r14d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
add       ebp,r14d
movsxd    r8,ebp
lea       rcx,[rbx+r8*2]
lea       rdx,[rdi+0C]
mov       r8d,r15d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rax,r12
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
ret
M02_L00
 
mov       rcx,rbx
mov       rdx,rsi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C666B08]; System.String.Concat(System.String, System.String)
M02_L01
 
call      qword ptr [7FFF4C85EF40]
int       3
M02_L02
 
mov       rcx,rsi
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C666B08]; System.String.Concat(System.String, System.String)
M02_L03
 
mov       rcx,rbx
mov       rdx,rdi
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r12
pop       r13
pop       r14
pop       r15
jmp       qword ptr [7FFF4C666B08]; System.String.Concat(System.String, System.String)
 
System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
vzeroupper
mov       rax,rcx
sub       rax,rdx
cmp       rax,r8
jb        near ptr M03_L08
mov       rax,rdx
sub       rax,rcx
cmp       rax,r8
jb        near ptr M03_L08
lea       rax,[rdx+r8]
lea       r10,[rcx+r8]
cmp       r8,10
ja        short M03_L02
test      r8b,18
je        short M03_L01
mov       r8,[rdx]
mov       [rcx],r8
mov       rdx,[rax-8]
mov       [r10-8],rdx
M03_L00
 
ret
M03_L01
 
test      r8b,4
je        short M03_L05
mov       r8d,[rdx]
mov       [rcx],r8d
mov       edx,[rax-4]
mov       [r10-4],edx
jmp       short M03_L00
M03_L02
 
cmp       r8,40
ja        short M03_L06
M03_L03
 
vmovups   xmm0,[rdx]
vmovups   [rcx],xmm0
cmp       r8,20
ja        short M03_L10
M03_L04
 
vmovups   xmm0,[rax-10]
vmovups   [r10-10],xmm0
jmp       short M03_L00
M03_L05
 
test      r8,r8
je        short M03_L00
movzx     edx,byte ptr [rdx]
mov       [rcx],dl
test      r8b,2
je        short M03_L00
movsx     rcx,word ptr [rax-2]
mov       [r10-2],cx
jmp       short M03_L00
M03_L06
 
cmp       r8,800
ja        short M03_L09
mov       r9,r8
shr       r9,6
M03_L07
 
vmovdqu   ymm0,ymmword ptr [rdx]
vmovdqu   ymmword ptr [rcx],ymm0
vmovdqu   ymm0,ymmword ptr [rdx+20]
vmovdqu   ymmword ptr [rcx+20],ymm0
add       rcx,40
add       rdx,40
dec       r9
jne       short M03_L07
and       r8,3F
cmp       r8,10
ja        short M03_L03
jmp       short M03_L04
M03_L08
 
cmp       rcx,rdx
je        near ptr M03_L00
M03_L09
 
jmp       qword ptr [7FFF4C715B90]; System.Buffer._Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M03_L10
 
vmovups   xmm0,[rdx+10]
vmovups   [rcx+10],xmm0
cmp       r8,30
jbe       near ptr M03_L04
vmovups   xmm0,[rdx+20]
vmovups   [rcx+20],xmm0
jmp       near ptr M03_L04
 
System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
push      r14
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,20
mov       rbx,rcx
mov       rsi,rdx
mov       edi,r8d
mov       r8d,[rbx+1C]
mov       eax,[rbx+18]
add       r8d,eax
add       r8d,edi
cmp       r8d,[rbx+20]
jg        near ptr M04_L03
cmp       r8d,edi
jl        near ptr M04_L03
mov       r8,[rbx+8]
mov       ebp,[r8+8]
sub       ebp,eax
test      ebp,ebp
jle       short M04_L01
test      r8,r8
je        near ptr M04_L04
mov       r10d,[r8+8]
cmp       r10d,eax
jb        near ptr M04_L05
mov       ecx,eax
lea       rcx,[r8+rcx*2+10]
sub       r10d,eax
M04_L00
 
cmp       ebp,r10d
ja        near ptr M04_L07
mov       r8d,ebp
add       r8,r8
mov       rdx,rsi
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
mov       [rbx+18],ecx
M04_L01
 
sub       edi,ebp
mov       rcx,rbx
mov       edx,edi
call      qword ptr [7FFF4C8FCB58]; System.Text.StringBuilder.ExpandByABlock(Int32)
movsxd    r8,ebp
lea       rdx,[rsi+r8*2]
mov       r8,[rbx+8]
test      r8,r8
je        near ptr M04_L06
lea       rcx,[r8+10]
mov       r14d,[r8+8]
cmp       edi,r14d
ja        near ptr M04_L07
M04_L02
 
mov       r8d,edi
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
mov       [rbx+18],edi
add       rsp,20
pop       rbx
pop       rbp
pop       rsi
pop       rdi
pop       r14
ret
M04_L03
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18791
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF6C0]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M04_L04
 
test      eax,eax
jne       short M04_L05
xor       ecx,ecx
xor       r10d,r10d
jmp       near ptr M04_L00
M04_L05
 
call      qword ptr [7FFF4C85E9D0]
int       3
M04_L06
 
xor       ecx,ecx
xor       r14d,r14d
cmp       edi,r14d
jbe       short M04_L02
M04_L07
 
call      qword ptr [7FFF4C85E9E8]
int       3
 
System.Text.StringBuilder.ToString()
push      rsi
push      rbx
sub       rsp,28
mov       rbx,rcx
mov       ecx,[rbx+1C]
add       ecx,[rbx+18]
je        near ptr M05_L03
call      System.String.FastAllocateString(Int32)
mov       rsi,rax
M05_L00
 
mov       r8d,[rbx+18]
test      r8d,r8d
jle       short M05_L01
mov       rdx,[rbx+8]
mov       ecx,[rbx+1C]
lea       eax,[r8+rcx]
cmp       eax,[rsi+8]
ja        short M05_L02
cmp       [rdx+8],r8d
jb        short M05_L02
movsxd    rcx,ecx
lea       rcx,[rsi+rcx*2+0C]
add       rdx,10
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M05_L01
 
mov       rbx,[rbx+10]
test      rbx,rbx
jne       short M05_L00
mov       rax,rsi
add       rsp,28
pop       rbx
pop       rsi
ret
M05_L02
 
mov       rcx,offset MT_System.ArgumentOutOfRangeException
call      CORINFO_HELP_NEWSFAST
mov       rbx,rax
mov       ecx,18761
mov       rdx,7FFF4C514000
call      CORINFO_HELP_STRCNS
mov       rsi,rax
call      qword ptr [7FFF4CBAF5E8]
mov       r8,rax
mov       rdx,rsi
mov       rcx,rbx
call      qword ptr [7FFF4C71D470]
mov       rcx,rbx
call      CORINFO_HELP_THROW
M05_L03
 
mov       rax,213CDA20008
add       rsp,28
pop       rbx
pop       rsi
ret
 
System.Globalization.CultureInfo.InitializeUserDefaultCulture()
push      rsi
push      rbx
sub       rsp,28
call      qword ptr [7FFFAC0041F8]
mov       rbx,rax
lea       rsi,[rbx+3E0]
call      qword ptr [7FFFAC017B80]
mov       rdx,rax
mov       rcx,rsi
xor       r8d,r8d
call      qword ptr [7FFFAC018B78]; System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
mov       rax,[rbx+3E0]
add       rsp,28
pop       rbx
pop       rsi
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFF4D0B6028]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-48],rax
mov       [rbp-38],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,2268B408B08
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-38],rcx
cmp       qword ptr [rbp-38],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-38]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-38]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-38]
M01_L01
 
xor       ecx,ecx
mov       [rbp-38],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFF4C90C1F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-40],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L09
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       edi,[r8+8]
test      edi,edi
je        short M01_L06
mov       r8,[r14+8]
mov       r13d,[r14+18]
lea       ecx,[rdi+r13]
cmp       ecx,[r8+8]
ja        short M01_L05
movsxd    rcx,r13d
lea       rcx,[r8+rcx*2+10]
cmp       edi,2
jle       short M01_L04
movsxd    r8,edi
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
add       edi,r13d
mov       [r14+18],edi
jmp       short M01_L06
M01_L04
 
movzx     r8d,word ptr [rdx]
mov       [rcx],r8w
cmp       edi,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L05
 
mov       rcx,r14
mov       r8d,edi
call      qword ptr [7FFF4C90CA98]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L10
cmp       ecx,r15d
jle       short M01_L08
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L07
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFF4C90C3F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M01_L08
 
add       r15d,1
jo        short M01_L10
cmp       esi,r15d
jg        near ptr M01_L02
M01_L09
 
mov       rcx,r14
call      qword ptr [7FFF4C8FEB18]; System.Text.StringBuilder.ToString()
mov       [rbp-48],rax
jmp       short M01_L11
M01_L10
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-48]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,2671D260008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-38]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      r13
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,2268B408B08
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       r13,[rbp-40]
mov       rcx,[r13+8]
mov       ecx,[rcx+8]
add       ecx,[r13+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,r13
xor       edx,edx
call      qword ptr [7FFF4C90C1F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-40]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       r13,[rbp-40]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,r13
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,r13
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r13
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFF4D0D6358]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,22CE3802B38
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFF4C84D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L09
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
jmp       short M01_L06
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L05
 
mov       rcx,r14
call      qword ptr [7FFF4C84D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L10
cmp       ecx,r15d
jle       short M01_L08
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L07
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFF4C84D2F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M01_L08
 
add       r15d,1
jo        short M01_L10
cmp       esi,r15d
jg        near ptr M01_L02
M01_L09
 
mov       rcx,r14
call      qword ptr [7FFF4C8696D0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L10
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,26D6D5B0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDFEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,22CE3802B38
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF4C84D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF4CDFEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFF4D0C64D8]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,25AFB00AB00
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFF4C83D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L08
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
M01_L04
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L09
cmp       ecx,r15d
jle       short M01_L06
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L10
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L06
M01_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L06
 
add       r15d,1
jo        short M01_L09
cmp       esi,r15d
jg        near ptr M01_L02
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
call      qword ptr [7FFF4C83D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L04
M01_L08
 
mov       rcx,r14
call      qword ptr [7FFF4C8596D0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L09
 
call      CORINFO_HELP_OVERFLOW
M01_L10
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFF4C83D2F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
jmp       short M01_L06
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,29B8CF40008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDEEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,25AFB00AB00
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF4C83D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF4CDEEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFF4D0A64D8]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,1A95CC0AB00
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFF4C81D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L08
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
M01_L04
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L09
cmp       ecx,r15d
jle       short M01_L06
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L10
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L06
M01_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L06
 
add       r15d,1
jo        short M01_L09
cmp       esi,r15d
jg        near ptr M01_L02
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
call      qword ptr [7FFF4C81D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L04
M01_L08
 
mov       rcx,r14
call      qword ptr [7FFF4C8396D0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L09
 
call      CORINFO_HELP_OVERFLOW
M01_L10
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFF4C81D2F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
jmp       short M01_L06
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,1E9EEA10008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,1A95CC0AB00
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF4C81D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFF4D0A7AB0]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,1E977C02B38
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFF4C81D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L08
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
M01_L04
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L09
cmp       ecx,r15d
jle       short M01_L06
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L10
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L06
M01_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L06
 
add       r15d,1
jo        short M01_L09
cmp       esi,r15d
jg        near ptr M01_L02
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
call      qword ptr [7FFF4C81D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L04
M01_L08
 
mov       rcx,r14
call      qword ptr [7FFF4C8396D0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L09
 
call      CORINFO_HELP_OVERFLOW
M01_L10
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFF4C81D2F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
jmp       short M01_L06
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,22A01BC0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,1E977C02B38
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF4C81D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFF4D0C7AB0]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,20EF340AB00
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFF4C83D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L08
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
M01_L04
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L09
cmp       ecx,r15d
jle       short M01_L06
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L10
mov       eax,eax
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L06
M01_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L06
 
add       r15d,1
jo        short M01_L09
cmp       esi,r15d
jg        near ptr M01_L02
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
call      qword ptr [7FFF4C83D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L04
M01_L08
 
mov       rcx,r14
call      qword ptr [7FFF4C8596D0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L09
 
call      CORINFO_HELP_OVERFLOW
M01_L10
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFF4C83D2F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
jmp       short M01_L06
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,24F81420008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDEEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,20EF340AB00
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF4C83D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF4CDEEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFF4D0D7AB0]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,26976808B08
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFF4C84D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L08
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
M01_L04
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L09
cmp       ecx,r15d
jle       short M01_L06
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L10
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L06
M01_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L06
 
add       r15d,1
jo        short M01_L09
cmp       esi,r15d
jg        near ptr M01_L02
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
call      qword ptr [7FFF4C84D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L04
M01_L08
 
mov       rcx,r14
call      qword ptr [7FFF4C8696D0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L09
 
call      CORINFO_HELP_OVERFLOW
M01_L10
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFF4C84D2F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
jmp       short M01_L06
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,2AA084F0008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDFEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,26976808B08
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF4C84D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF4CDFEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.CombineWithSpace()
push      rbx
sub       rsp,30
xor       eax,eax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,[rbx+290]
call      qword ptr [7FFF4D0B7AB0]; DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,30
pop       rbx
ret
 
DotNetTips.Spargine.Core.FastStringBuilder.CombineWithSpace(System.String[])
		if (args == null || args.Length == 0)
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			for (var index = 0; index < args.Length; index++)
			     ^^^^^^^^^^^^^
				_ = sb.Append(args[index]);
				^^^^^^^^^^^^^^^^^^^^^^^^^^^
				if (index < args.Length - 1)
				^^^^^^^^^^^^^^^^^^^^^^^^^^^^
					_ = sb.Append(ControlChars.Space);
					^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,48
lea       rbp,[rsp+70]
xor       eax,eax
mov       [rbp-40],rax
mov       [rbp-30],rax
mov       [rbp-50],rsp
mov       rbx,rcx
test      rbx,rbx
je        near ptr M01_L12
mov       esi,[rbx+8]
test      esi,esi
je        near ptr M01_L12
mov       rcx,1EFE8402B38
mov       rdi,[rcx]
mov       rcx,[rdi+20]
mov       [rbp-30],rcx
cmp       qword ptr [rbp-30],0
je        near ptr M01_L13
lea       rcx,[rdi+20]
mov       r8,[rbp-30]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-30]
jne       near ptr M01_L13
M01_L00
 
mov       r14,[rbp-30]
M01_L01
 
xor       ecx,ecx
mov       [rbp-30],rcx
cmp       [r14],r14b
mov       rcx,r14
xor       edx,edx
call      qword ptr [7FFF4C82D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-38],r14
xor       r15d,r15d
test      esi,esi
jle       near ptr M01_L09
M01_L02
 
mov       r8d,r15d
mov       r8,[rbx+r8*8+10]
test      r8,r8
je        short M01_L06
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L06
mov       rcx,[r14+8]
mov       eax,[r14+18]
lea       edi,[rax+r8]
cmp       edi,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L03
 
mov       [r14+18],edi
jmp       short M01_L06
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L03
M01_L05
 
mov       rcx,r14
call      qword ptr [7FFF4C82D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L06
 
mov       ecx,esi
sub       ecx,1
jo        short M01_L10
cmp       ecx,r15d
jle       short M01_L08
mov       ecx,[r14+18]
mov       eax,ecx
mov       rdx,[r14+8]
mov       r8d,[rdx+8]
cmp       r8d,eax
jbe       short M01_L07
mov       word ptr [rdx+rax*2+10],20
inc       ecx
mov       [r14+18],ecx
jmp       short M01_L08
M01_L07
 
mov       rcx,r14
mov       edx,20
call      qword ptr [7FFF4C82D2F0]; System.Text.StringBuilder.AppendWithExpansion(Char)
M01_L08
 
add       r15d,1
jo        short M01_L10
cmp       esi,r15d
jg        near ptr M01_L02
M01_L09
 
mov       rcx,r14
call      qword ptr [7FFF4C8496D0]; System.Text.StringBuilder.ToString()
mov       [rbp-40],rax
jmp       short M01_L11
M01_L10
 
call      CORINFO_HELP_OVERFLOW
int       3
M01_L11
 
mov       rcx,rsp
call      M01_L15
nop
mov       rax,[rbp-40]
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L12
 
mov       rax,23072150008
add       rsp,48
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
M01_L13
 
mov       rcx,[rdi+18]
lea       rdx,[rbp-30]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M01_L14
add       rdi,2C
lock dec  dword ptr [rdi]
jmp       near ptr M01_L00
M01_L14
 
mov       rax,[rdi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       r14,rax
jmp       near ptr M01_L01
M01_L15
 
push      rbp
push      r15
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,28
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+70]
mov       rcx,1EFE8402B38
mov       rdi,[rcx]
mov       r14,[rdi+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [r14+18],rcx
jne       short M01_L16
mov       rbx,[rbp-38]
mov       rcx,[rbx+8]
mov       ecx,[rcx+8]
add       ecx,[rbx+1C]
mov       rdx,[r14+8]
cmp       ecx,[rdx+0C]
jg        short M01_L20
mov       rcx,rbx
xor       edx,edx
call      qword ptr [7FFF4C82D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M01_L17
M01_L16
 
mov       rdx,[rbp-38]
mov       rcx,[r14+8]
call      qword ptr [r14+18]
test      eax,eax
mov       rbx,[rbp-38]
je        short M01_L20
M01_L17
 
cmp       qword ptr [rdi+20],0
jne       short M01_L18
lea       rcx,[rdi+20]
mov       rdx,rbx
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M01_L20
M01_L18
 
lea       rcx,[rdi+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rdi+28]
jg        short M01_L19
mov       rcx,[rdi+18]
mov       rdx,rbx
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M01_L20
M01_L19
 
add       rdi,2C
lock dec  dword ptr [rdi]
M01_L20
 
add       rsp,28
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       r15
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFF4D0C6568]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFF4C6741F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M01_L05
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
jmp       short M01_L04
M01_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
call      qword ptr [7FFF4C83D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M01_L00
M01_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,204ED408B08
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C83D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
jmp       short M02_L07
M02_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L06
 
mov       rcx,rdi
call      qword ptr [7FFF4C83D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M02_L02
jmp       short M02_L09
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFF4C8596D0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,2457F1F0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDEEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,204ED408B08
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C83D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDEEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFF4D0960B8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFF4C6441F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C6F5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FFF4C80D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,221ED808B08
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C80D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C6F5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
M02_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M02_L02
jmp       short M02_L09
M02_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L07
 
mov       rcx,rdi
call      qword ptr [7FFF4C80D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L04
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFF4C8296D0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,2627F7A0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDBEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,221ED808B08
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C80D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDBEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFF4D0D60B8]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFF4C6841F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M01_L05
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L04
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L03
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L02
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
jmp       short M01_L04
M01_L02
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L03
 
mov       rcx,rbx
call      qword ptr [7FFF4C84D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M01_L04
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        near ptr M01_L00
M01_L05
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,20E69C0AB00
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C84D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C735B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
M02_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M02_L02
jmp       short M02_L09
M02_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L07
 
mov       rcx,rdi
call      qword ptr [7FFF4C84D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L04
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFF4C8696D0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,24EFBCC0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDFEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,20E69C0AB00
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C84D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDFEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFF4D0A6568]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFF4C6541F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FFF4C81D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,1C98480AB00
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C81D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
jmp       short M02_L07
M02_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L06
 
mov       rcx,rdi
call      qword ptr [7FFF4C81D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M02_L02
jmp       short M02_L09
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFF4C8396D0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,20A127B0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1C98480AB00
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C81D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFF4D0A7618]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFF4C6541F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FFF4C81D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,1E6B6402B38
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C81D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C705B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
M02_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M02_L02
jmp       short M02_L09
M02_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L07
 
mov       rcx,rdi
call      qword ptr [7FFF4C81D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L04
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFF4C8396D0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,2273C3F0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,1E6B6402B38
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C81D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDCEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFF4D0C7618]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFF4C6741F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FFF4C83D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,2213EC08B08
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C83D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C725B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
M02_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M02_L02
jmp       short M02_L09
M02_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L07
 
mov       rcx,rdi
call      qword ptr [7FFF4C83D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L04
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFF4C8596D0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,261D0C20008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDEEF88]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,2213EC08B08
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C83D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDEEF58]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFF4D0B7B40]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFF4C6641F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FFF4C82D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,276BF002B38
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C82D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L04
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L07
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L07
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L06
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L05
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C715B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
jmp       short M02_L07
M02_L04
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L05
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L06
 
mov       rcx,rdi
call      qword ptr [7FFF4C82D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
M02_L07
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        near ptr M02_L02
jmp       short M02_L09
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFF4C8496D0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,2B740FE0008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,276BF002B38
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C82D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDDEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
 

.NET 8.0.15 (8.0.1525.16413), X64 RyuJIT AVX2

DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.PerformAction()
push      rsi
push      rbx
sub       rsp,38
xor       eax,eax
mov       [rsp+30],rax
mov       [rsp+28],rax
mov       rbx,rcx
mov       rcx,offset MT_System.Action`1[[System.Text.StringBuilder, System.Private.CoreLib]]
call      CORINFO_HELP_NEWSFAST
mov       rsi,rax
test      rbx,rbx
je        short M00_L00
lea       rcx,[rsi+8]
mov       rdx,rbx
call      CORINFO_HELP_ASSIGN_REF
mov       rcx,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
mov       [rsi+18],rcx
mov       [rsp+30],rsi
lea       rcx,[rsp+30]
call      qword ptr [7FFF4D097948]; DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
mov       [rsp+28],rax
mov       rbx,[rbx+18]
mov       rdx,[rsp+28]
lea       rcx,[rbx+8]
call      CORINFO_HELP_ASSIGN_REF
xor       eax,eax
mov       [rbx+8],rax
add       rsp,38
pop       rbx
pop       rsi
ret
M00_L00
 
call      qword ptr [7FFF4C6441F8]
int       3
 
DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
push      rdi
push      rsi
push      rbp
push      rbx
sub       rsp,28
mov       rsi,rcx
mov       rbx,rdx
xor       edi,edi
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       short M01_L03
M01_L00
 
mov       r8,[rsi+290]
cmp       edi,[r8+8]
jae       near ptr M01_L06
mov       ecx,edi
mov       r8,[r8+rcx*8+10]
cmp       [rbx],bl
test      r8,r8
je        short M01_L02
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M01_L02
mov       rcx,[rbx+8]
mov       eax,[rbx+18]
lea       ebp,[rax+r8]
cmp       ebp,[rcx+8]
ja        short M01_L05
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M01_L04
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C6F5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M01_L01
 
mov       [rbx+18],ebp
M01_L02
 
inc       edi
mov       rax,[rsi+290]
cmp       [rax+8],edi
jg        short M01_L00
M01_L03
 
add       rsp,28
pop       rbx
pop       rbp
pop       rsi
pop       rdi
ret
M01_L04
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M01_L01
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M01_L01
M01_L05
 
mov       rcx,rbx
call      qword ptr [7FFF4C80D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M01_L02
M01_L06
 
call      CORINFO_HELP_RNGCHKFAIL
int       3
 
DotNetTips.Spargine.Core.FastStringBuilder.PerformAction(System.Action`1 ByRef)
		if (action is null)
		^^^^^^^^^^^^^^^^^^^
			return ControlChars.EmptyString;
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		var sb = _stringBuilderPool.Get().Clear();
		^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			action.Invoke(sb);
			^^^^^^^^^^^^^^^^^^
			return sb.ToString();
			^^^^^^^^^^^^^^^^^^^^^
	}
	^
			_stringBuilderPool.Return(sb);
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		}
		^
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,40
lea       rbp,[rsp+60]
xor       eax,eax
mov       [rbp-38],rax
mov       [rbp-28],rax
mov       [rbp-40],rsp
mov       rbx,rcx
cmp       qword ptr [rbx],0
je        near ptr M02_L10
mov       rcx,26D91808B08
mov       rsi,[rcx]
mov       rcx,[rsi+20]
mov       [rbp-28],rcx
cmp       qword ptr [rbp-28],0
je        near ptr M02_L11
lea       rcx,[rsi+20]
mov       r8,[rbp-28]
xor       edx,edx
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
cmp       rax,[rbp-28]
jne       near ptr M02_L11
M02_L00
 
mov       rdi,[rbp-28]
M02_L01
 
xor       ecx,ecx
mov       [rbp-28],rcx
cmp       [rdi],dil
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C80D0F8]; System.Text.StringBuilder.set_Length(Int32)
mov       [rbp-30],rdi
mov       r14,[rbx]
mov       r8,offset DotNetTips.Spargine.Core.BenchmarkTests.FastStringBuilderCounterBenchmark.g__action|18_0(System.Text.StringBuilder)
cmp       [r14+18],r8
jne       near ptr M02_L08
mov       rsi,[r14+8]
xor       ebx,ebx
mov       r8,[rsi+290]
cmp       dword ptr [r8+8],0
jle       near ptr M02_L09
M02_L02
 
mov       r8,[rsi+290]
cmp       ebx,[r8+8]
jae       short M02_L05
mov       ecx,ebx
mov       r8,[r8+rcx*8+10]
test      r8,r8
je        short M02_L04
lea       rdx,[r8+0C]
mov       r8d,[r8+8]
test      r8d,r8d
je        short M02_L04
mov       rcx,[rdi+8]
mov       eax,[rdi+18]
lea       r14d,[rax+r8]
cmp       r14d,[rcx+8]
ja        short M02_L07
cdqe
lea       rcx,[rcx+rax*2+10]
cmp       r8d,2
jle       short M02_L06
movsxd    r8,r8d
add       r8,r8
call      qword ptr [7FFF4C6F5B78]; System.Buffer.Memmove(Byte ByRef, Byte ByRef, UIntPtr)
M02_L03
 
mov       [rdi+18],r14d
M02_L04
 
inc       ebx
mov       rcx,[rsi+290]
cmp       [rcx+8],ebx
jg        short M02_L02
jmp       short M02_L09
M02_L05
 
call      CORINFO_HELP_RNGCHKFAIL
M02_L06
 
movzx     eax,word ptr [rdx]
mov       [rcx],ax
cmp       r8d,2
jne       short M02_L03
movzx     r8d,word ptr [rdx+2]
mov       [rcx+2],r8w
jmp       short M02_L03
M02_L07
 
mov       rcx,rdi
call      qword ptr [7FFF4C80D998]; System.Text.StringBuilder.AppendWithExpansion(Char ByRef, Int32)
jmp       short M02_L04
M02_L08
 
mov       rdx,rdi
mov       rcx,[r14+8]
call      qword ptr [r14+18]
M02_L09
 
mov       rcx,rdi
call      qword ptr [7FFF4C8296D0]; System.Text.StringBuilder.ToString()
mov       [rbp-38],rax
mov       rcx,rsp
call      M02_L13
nop
mov       rax,[rbp-38]
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L10
 
mov       rax,2AE23560008
add       rsp,40
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret
M02_L11
 
mov       rcx,[rsi+18]
lea       rdx,[rbp-28]
cmp       [rcx],ecx
call      qword ptr [7FFF4CDBEF10]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].TryDequeue(System.__Canon ByRef)
test      eax,eax
je        short M02_L12
add       rsi,2C
lock dec  dword ptr [rsi]
jmp       near ptr M02_L00
M02_L12
 
mov       rax,[rsi+8]
mov       rcx,[rax+8]
call      qword ptr [rax+18]
mov       rdi,rax
jmp       near ptr M02_L01
M02_L13
 
push      rbp
push      r14
push      rdi
push      rsi
push      rbx
sub       rsp,30
mov       rbp,[rcx+20]
mov       [rsp+20],rbp
lea       rbp,[rbp+60]
mov       rcx,26D91808B08
mov       rbx,[rcx]
mov       rsi,[rbx+10]
mov       rcx,offset Microsoft.Extensions.ObjectPool.StringBuilderPooledObjectPolicy.Return(System.Text.StringBuilder)
cmp       [rsi+18],rcx
jne       short M02_L14
mov       rdi,[rbp-30]
mov       rcx,[rdi+8]
mov       ecx,[rcx+8]
add       ecx,[rdi+1C]
mov       rdx,[rsi+8]
cmp       ecx,[rdx+0C]
jg        short M02_L18
mov       rcx,rdi
xor       edx,edx
call      qword ptr [7FFF4C80D0F8]; System.Text.StringBuilder.set_Length(Int32)
jmp       short M02_L15
M02_L14
 
mov       rdi,[rbp-30]
mov       rdx,rdi
mov       rcx,[rsi+8]
call      qword ptr [rsi+18]
test      eax,eax
je        short M02_L18
M02_L15
 
cmp       qword ptr [rbx+20],0
jne       short M02_L16
lea       rcx,[rbx+20]
mov       rdx,rdi
xor       r8d,r8d
call      System.Threading.Interlocked.CompareExchange(System.Object ByRef, System.Object, System.Object)
test      rax,rax
je        short M02_L18
M02_L16
 
lea       rcx,[rbx+2C]
mov       edx,1
lock xadd [rcx],edx
inc       edx
cmp       edx,[rbx+28]
jg        short M02_L17
mov       rcx,[rbx+18]
mov       rdx,rdi
cmp       [rcx],ecx
call      qword ptr [7FFF4CDBEEE0]; System.Collections.Concurrent.ConcurrentQueue`1[[System.__Canon, System.Private.CoreLib]].Enqueue(System.__Canon)
jmp       short M02_L18
M02_L17
 
add       rbx,2C
lock dec  dword ptr [rbx]
M02_L18
 
add       rsp,30
pop       rbx
pop       rsi
pop       rdi
pop       r14
pop       rbp
ret